Web services are a response to a number of problems that have emerged in the development of computers and in the way people use computers. Computers were, initially, a very expensive and rare tool used only for highly specialized, mostly scientific applications. Now, they are the core tool of almost all academic and intellectual work. In much of the world, owning a computer or smartphone with access to the Internet is something most literate people can take for granted. This change in computer users and uses forced the developers of computer tools to change their practices many times, and web services are a recent iteration of this process of adaptation.
The first computers, built in the 1940s and early 1950s, could only run one program at a time, were not interconnected, and had very little ability to store information for long periods of time. Individual users entered the programs and data they wanted a computer to process from stored media – punch cards and later disks and tapes – and then waited for the computer to complete the program and output the result on paper, cards, disks, or some other media.
From very early on, computer engineers looked at ways to save users time and trouble and improve the efficiency of computers. Beginning in the mid-1950s, IBM sold hard drives so that data could be stored internally in computers and accessed when wanted. Data no longer had to be inputted each time users wanted to do something, and output could be directed to the same internal storage for further processing and analysis.
In the early 1960s, engineers began connecting computers so they could exchange data, first as part of the US air defense system and then in the SABRE air travel reservation system. And, starting in the mid-1960s, computers started to support multiple users at the same time, each with their own screen and keyboard, running different processes on different data on the same computer without interfering with each other.
As computers became more widespread, more powerful, and were expected to perform more complex and demanding tasks, this networked multi-user model replaced the older picture of computers as a single isolated machine with a single user. Each user had an individual screen and keyboard, but used them to access any number of powerful computers, which could be located anywhere from the next room to thousands of kilometres away, tied together by sophisticated computer-to-computer connections. By 1970, this model had evolved into the earliest form of the Internet and the first versions of the still widespread Unix operating system.
Networked, multi-user computers created a number of new practical problems: When a networked computers store and run different programs that depend on each other, they need to have common ways of communicating and structuring data so that they can interact correctly. And, large networks with many users require security systems to control access. Many of the particularities of Unix-style operating systems were implemented to address those problems, and the standards for computer communication and data interchange on the Internet target precisely those issues.
The introduction of personal computers in the 1980s in some ways represented a step backwards in computer engineering: Home and office computers were once again isolated from each other, usually lacking any internal storage, and only able to run one process at a time, directed by a single user who would have to wait for processes to finish. Developing software for these widespread desktop computers meant confronting all over again many of the problems that standard protocols and interfaces were originally developed to solve.
In addition, the desktop computer revolution introduced a whole new problem to computer engineering: Personal computer users are usually not technical experts and often have little or no access to technical experts. Installing, running and maintaining software on personal computers can be very challenging even for experts and this inhibited the release of complex software.
In the 1990s, desktop computers became much more powerful and were increasingly networked and connected to the Internet, but the solutions that had been developed for high-performance computers were not so easy to reimplement for desktop computers. High-performance computer systems have professional administrators to maintain them, and until roughly 1990, nearly all Internet-accessible computers were owned by governments, military contractors, big companies, and universities. New standards and solutions could be implemented quickly by a combination of bureaucratic directives and professional agreement among system operators. System administrators operated as an informal guild, in constant communication with each other over the Interent, documenting and distributing highly specific knowledge about problems and solutions often before computer vendors were even aware of them. For personal computers, this approach was impossible. Users are not computer professionals and cannot be exepcted to be constantly on top of the latest highly specialized technical knowledge.
Web services are one, partial solution to these problems. The Internet is built on a set of stable, mature protocols for computer-to-computer interaction. Any computer that connects to the Internet, by definition, supports those common protocols. The Internet has, therefore, become a reliable mechanism of providing services to practically all computers.
A web service is any computational service that is provided via the Internet using a standard interface, accessible to different applications and computing platforms. To use a web service, a computer needs to only support the standard Internet protocols. Providing a web service means never having to distribute a tool or other resource at all. The service itself is hosted on a server under the provider's control, and does not need to ever be ported or adapted to different environments.
Web services resolve a number of the problems highlighted above:
No special software to install other than the ones already needed to access the Internet.
Fewer problems with system compatibility, since programs are written to run on distant servers under the control of developers.
Bypassing the limitations of desktop computers that lack memory or storage space.
These benefits, along with widespread high-speed Internet access, have made web services an increasingly preferred solution to the problem of making digital resources and tools available to diverse users.