I was wondering if someone knew the origin of the client server model. Where does the term come from (paper, software application, book)?
This is a good question.
It appears that the term server was commonly used already in 1960s. For example, RFC 5, which was published in 1969, already uses the term, and it seems that it was in a common use already back then.
However, the term client in this context seems to be much more recent; the earliest references that I was able to find are from 1978. The following paper seems to be the earliest hit:
- Jay E. Israel et al. (1978): Separating Data From Function in a Distributed File System.
I did not find the full text of this paper. It seems that it was published in the Proceedings of the Second International Symposium on Operating Systems Theory and Practice, which was held in October 1978. A preview is available here; I am quoting the relevant part (emphasis mine):
The distributed file system (DFS) is so named because it is implemented on a cooperating set of server computers which together create the illusion of a single, logical system. The other computers in the network that use the DFS for creating, destroying, and randomly accessing files are called its clients (we employ the term "user" to stand only for human users; programs that access the DFS are always called clients).
This looks like a good candidate of the first paper that uses the client-server terminology. Note the way it is written: the authors clearly assume that the reader is familiar with the term "server", but they are here introducing the unfamiliar term "client"—so strange that they have to justify its use.
I checked various resources, including the digital libraries of IEEE and ACM, and I was not able to find any hits that predate 1978. However, already in 1979 there was at least one paper that is boldly using the new term "client" in its title. Unsurprisingly, it is citing Israel et al. (1978).
OED knows the term, but again the earliest use is by Isreal et al.
Edit: Here are some further comments on the term "server". Looking at various papers written in 1960s, it seems that the term "server" was primarily used in the context of queueing theory; there a "server" can be any kind of entity that provides some service.
Whenever a "server computer" was mentioned in computer science papers written in 1960s, it was typically related to the applications of queueing theory in the context of computer systems. Perhaps this is the origin of the term in our field?
I am not sure what is the first instance of a "server" used in this sense without any direct connection to queueing theory.
However, RFC 5 from 1969 that I mentioned above seems to be already using the term "server" in the context of client-server systems and computer networks, without any explicit references to queueing theory. Of course the term "client" was not introduced yet, so they used the words "server-host" and "user-host".
Originally the "Client-Server" model of computing was a little different to the dumb terminal to mainframe earlier models and the later web browser to backend web server models.
With Client-Server systems there was a sharing of processing between parts of the system, with the server handling the data and the client retrieving this data and then performing additional processing on it and managing it's graphical display.
One of the first examples of this was with Oracle Forms 4.0, released in 1992. An Oracle database server responded to requests over a TCP/IP network from a PC-based client running the Oracle Forms application. Data management and retrieval was handled by the server and the client processed the returned data and the user interface to this.
It was during the development of Oracle Forms 4.0 that I first heard the phrase "Client-Server" used during a customer familiarisation event at Oracle's HQ in Redwood Shores CA in May 1991. The words "server" and "client" were often mentioned but had not previously been coined linked together. Richard Moulding of the British company BT first started to use the phrase Client-Server during discussions. This was quickly picked up by the other participants, it then making its way into product literature and hence into general use in the computing community.
Later web-based client-server systems initially had lighter clients due to the simple web browsers available. The client then being limited to displaying the interface prepared on the server. Later browsers with Java and scripting tools enabled data to be manipulated in the browser, a more similar model to corporate client-server systems like Oracle Forms.
Perhaps it's easier to understand client-server computing and distributed processing if one looks at the history of networking. The ARPAnet came into being in the 1960s using Honeywell minicomputers as message processors. By 1973 ARPAnet supported transferring files across the network.
Digital Equipment Corporation (DEC) released DECnet 1.0 in 1975. It supported network connections (LAN and WAN) between minicomputers and mainframes, providing functionality such as file transfers, remote logins and virtual terminals. In the late '70s, Datapoint shipped ARCnet, a LAN that supported resource sharing and file serving.
Before the IBM PC arrived, a number of companies were selling CP/M systems (8-bit computers). Those micro systems typically had floppy drives. Because hard drives were expensive, there was a demand for a solution for sharing a hard disk. Several companies jumped into the market with file server products that would enable a CP/M computer to share a hard drive. Local area network operating systems from Novell and Corvus supported file sharing by CP/M computers before the IBM PC gained widespread acceptance, and later added disk and printer sharing for PCs.
Novell was founded in 1979 and it initially manufactured and sold hardware, including smart terminals, a dot matrix printer and the Nexus, a high-end CP/M-based workstation ($13-$18,000 dollars).
Novell's claim to fame for the Nexus products was that they would eventually connect to a Novell LAN that was in development. Novell's printers, terminals and Nexus computers did not sell well so Novell's leadership decided to re-organize the company and after 1983 it focused on software, file servers and boards for networking. Novell NetWare sales exploded in the 1980s. Novell had the predominant file server in terms of sales, but it was not the first file server
In 1984 Sybase was founded and it introduced the SQL client-server architecture, distributed processing with the SQL database on a server and applications running on clients that sent query requests to the server.