Federated Edge-assisted Mobile Clouds for Service Provisioning in Heterogeneous IoT Environments