  Cloud computing is a recent paradigm based around the notion of delivery of
resources via a service model over the Internet. Despite being a new paradigm
of computation, cloud computing owes its origins to a number of previous
paradigms. The term cloud computing is well defined and no longer merits
rigorous taxonomies to furnish a definition. Instead this survey paper
considers the past, present and future of cloud computing. As an evolution of
previous paradigms, we consider the predecessors to cloud computing and what
significance they still hold to cloud services. Additionally we examine the
technologies which comprise cloud computing and how the challenges and future
developments of these technologies will influence the field. Finally we examine
the challenges that limit the growth, application and development of cloud
computing and suggest directions required to overcome these challenges in order
to further the success of cloud computing.
