Service Provisioning through Opportunistic Computing in Mobile Clouds