Federated edge-assisted mobile clouds for service provisioning in heterogeneous IoT environments