The term basically refers to performing computing activities online instead of offline (using the computer's hardware). it means that individuals or organizations lease remote memory space and software , that are stored away from their physical location, and use them through the internet.
The basic advantage of this model is that the customer doesn't have to purchase in advance software or memory space, but purchases them on demand only and for the extent he/she may need. This feature often saves a significant portion of the computing costs of an organization.
The basic types of service available on Cloud Computing:
First, Sotfware-as-Service (SAAS), which refers to the use of computer programs installed on the supplier's servers, and the user makes use of them through the internet. Prominent SAAS software examples: Gmail, online gaming.
Second, Infrastructure-as-service (IAAS), which refers to use of memory space of the supplier by the user. Prominent examples: site hosting, backup storage.
Third, Platform-as-Service (PAAS), which refers to the use of developing platforms by the user in the process of writing and testing software, such as: Linux emulators, online compilers.
The financial cost reduction using Cloud Computing derives from several factors:
First, no need of purchasing expensive hardware devices, such as: servers.
Second, no need of purchasing in advance expensive software products, such as: operating systems, Integrated Development Environment (IDE).
Third, no need of hiring local maintenance experts for the software and hardware.
Fourth, no need to deal with disaster relief procedures, as the supplier deals with it.
Fifth, no limit of resources availability. for example. if there's a shortage of memory space, there's a possibility of purchasing additional small size memory.
Sixth, no dependency on a specific location where software products are installed.
The shortcomings of Cloud Computing can be roughly divided into the following:
First, dependency on the supplier. The latter may run bankrupt or have many operational failures. In such a case, the user can't do anything to prevent his own setback.
Second, possible security holes regarding the employees of the supplier, who may cause damage to the user's data.
Third, difficulty in communication between software products which are located on many different servers. For instance, SQL database that has to communicate with a web script held on another server.
Fourth, difficulty in managing software platform without the ability to access the hardware (because it belongs to the supplier). For example, running a disk compression may be necessary for a software running but the user isn't permitted to do that.
Prominent Cloud Computing suppliers include:
1. Elastic Compute Cloud (EC2) of Amazon - The most well-known service, which allows memory space & infrastructure software leasing.
2. App Engine of Google, which allows development & testing of Java/pythons application on remote servers.
3. Azure of Microsoft - which allows mainly platforms for online development of software.
Summary, Cloud Computing is here to stay, but due to its vulnerability concerning security, I believe that the move of organization to work with this model is going to take more than a few years.