Novel cloud computing models with dynamic allocation of virtual machines under homogeneous and non homogeneous conditions