Text this: Heterogeneity in mobile cloud computing: taxonomy and open challenges