Cloud Computing Where Did It Come From?
Traditional Enterprise Software
Enterprise software was traditionally deployed on a mainframe server and was accessed from dumb terminals. The software code was easy to maintain because it was located on one server, but there were a number of inefficiencies. Each company had to maintain their own costly mainframe infrastructure. The computing power of the day necessitated periodic batch processes, which often limited users to information that was out of date. Finally, external access to the system was limited to a select few technical employees and rarely to any external partners.
Client/Server Software
With the popularity of the personal computer in the 1980’s, users began making room next to their dumb terminals for PC’s, to take advantage of the first word processors and spreadsheet applications. The graphical user interface (GUI) made personal computing even more productive and it became clear that it was here to stay. The impact on enterprise software was a concept called client/server computing. This early form of distributed computing involved software running on a server as well as on each desktop (i.e. client) computer. These new graphical client programs were more productive for users and could take advantage of client computing power, but were incredibly expensive to develop and deploy, requiring software to be distributed to hundreds or thousands of computers whenever a change was made to the client code. Many early adopters regretted their foray into client/server computing and others learned from what they saw and avoided the client/server phase completely.
Early Hosted Software
The explosive growth of the World Wide Web in the 1990’s prompted the first experiments with hosted enterprise software. This began by putting the mainframe server on the Internet and introducing terminal emulators that could be used to access the software through a browser on a PC, without the need for a separate dumb terminal on each user’s desk. Vendors who began selling enterprise software this way were classified as application service providers (ASP’s). This substantially improved external access to mainframe systems, but the software was not written for the Web. These ‘green screen’ emulators ran in a browser, but did not take advantage of client computing power and the graphical user interface.
Cloud Computing
A whole new breed of hosted software has emerged today. This software has been built from the ground up to take advantage of the Internet and distributed computing. The interfaces are native HTML pages, which utilize the power of the client computer to provide a rich graphical experience and minimize the learning curve. The architecture is based on cloud computing, where many users access resources from many servers running on the Internet. Users typically subscribe to use this new breed of enterprise software as needed, and it is therefore often referred to as on-demand software, or software as a service (SaaS).