“…The ultimate goal of cloud computing is to provide on-demand computing services [3] with high reliability [4], scalability [5]- [7], availability, Quality of Service (QoS) [8], and with minimum cost in a federated [9] computing environments. It is important to note that the concept of cloud computing is not new, but it represents the next evolutionary step of several initiates carried out in the last few years, including distributed computing [10], grid computing [6], [11], [12], utility computing [6], [12]- [14], virtualization [6], [7], [15]- [17], and server clusters [15], [18].…”