Edge-centric Computing: Vision and Challenges