An architecture in which the user's PC (the client) is the requesting machine and the server is the supplying machine, both of which are connected via a local area network (LAN) or wide area network (WAN). Throughout the late 1980s and early 1990s, client/server was the hot buzzword as applications were migrated from centralized minicomputers and mainframes to networks of desktop computers.
Client and Server
The client is the user's machine, which contains the user interface (Windows, Mac or Linux) and can perform some or all of the application processing.
File servers, which range in size from PCs to mainframes, store data and programs and share those files with the clients. In this case, the server functions as a remote disk drive to the clients.
To be a true client/server environment, both client and server must share in the business processing. To understand this principle, follow the examples below, which depict a query to a hypothetical database of a million records, each 1,000 bytes long. Notice where the processing is performed and the amount of data flowing over the network.
Non-Client/Server - The File Server
If the database is stored in a file server that does nothing more than store and share its programs and data, the file server acts like a remote disk drive to the client. In this case, the database management system (DBMS) "runs" in the client. Because no searching is done in the server, all 1,000,000 records have to be sent over the network to the client for comparing. This is not "true" client/server because both sides are not sharing the business processing.
This is "true" client/server because both sides participate in the business processing. The database management system (DBMS) "runs" in the server. A query from the client is sent to the DBMS, which responds by searching the server and sending only the results to the client. If 50 records matched the criteria in our million-record example, only 50 kilobytes of data traverse the network rather than one gigabyte (a million times less).
In this case, the processing is divided between two or more servers, one used for application processing and another for database processing. This is very common in large enterprises. See application server
and database server
The Web Really Is Client/Server
Because of the Internet, terms such as "Web based" and "Web enabled" replaced the 1990s client/server buzzword, with "client/server" insinuating the old pre-Web way of doing things. However, most client/server systems were modified to include Web access, and the Web "is" a natural client/server architecture.
On the server side, the Web uses a multi-tier architecture with interlinked Web servers, application servers, database servers and caching servers. On the client side, user machines commonly execute scripts embedded in countless Web pages. They also execute Java applets, Java programs and rich client applications, all of which means that both client and server cooperate in tandem. See scripting language
, Java applet
and rich client