Distributed and Cloud Computing: From Parallel Processing to the Internet of Things