Partitionable Services: A Framework for Seamlessly Adapting Distributed Applications to Heterogeneous Environments