The origin of the term cloud computing is unclear but it refers to computing resources that are dynamically provisioned over the internet. Early concepts of cloud computing involved time-sharing mainframe computers in the 1950s and virtual machines in the 1970s. Telecommunications companies started offering virtual private networks in the 1990s. Grid computing, utility computing, SaaS, and cloud computing evolved the concept further, providing on-demand access to computing resources and applications delivered as a service.