1. A method for dynamic placement of applications in a cellular network mobile cloud, the method comprising the steps of: (a) obtaining: (i) a model of the cellular network, (ii) a model of user mobility patterns in the cellular network, and (iii) a model of a profile of the applications; (b) upon receipt of requests from users for the applications, obtaining runtime states at edge servers in the mobile cloud; and (c) upon obtaining the runtime states at the edge servers, placing the requests among the edge servers and a core server in the mobile cloud based on the models obtained in step (a) and the runtime states obtained in step (b).