I. Introduction
The cloud computing paradigm has gained an increasing attention due to its promised shift in the way of provisioning computing resources and expertise. This paradigm offers access to and management of physical resources in a ubiquitous way by leveraging storage and computing tools in addition to applications in a virtual manner. Indeed, accessing a pool of available resources requires only an Internet access, and users are supposed to pay only for what they consume. This new way of provisioning software and hardware resources alleviates users from the costs and burden of installing and managing the costly Information Technology (IT) to support intensive computing applications.