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 a wide area network (WAN) such as the Internet. Throughout the late 1980s and early 1990s, client/server was the hot buzzword as applications migrated from minicomputers and mainframes with input/output terminals to networks of desktop computers.
With ubiquitous access to company LANs and the Internet, almost everyone works in a client/server environment today. However, to be true client/server, both client and server must share in the business processing. To understand this principle, follow the examples below of a query to a hypothetical database of a million records, each 1,000 bytes long. Notice the amount of data flowing over the network.
In the above example, the database management system (DBMS) runs in the client, and the database is stored in the file server, which acts like a remote disk drive. Because no searching is done in the server, all one million 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 in the business processing.
The above example 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 results to the client. If 50 records matched the criteria in our million-record example, only 50 KB of data traverse the network rather than 1 GB.
In the above example, processing is divided between two or more servers: one used for application processing and another for database processing.
Because of the Internet, terms such as "Web based" and "Web enabled" replaced the 1990s client/server buzzword, and client/server implied old, legacy systems. However, although the client/server term may no longer be used much, Web-based systems today are entirely two-tier and three-tier client/server architectures. At the client side, the user's PC executes scripts in Web pages, and Internet-based Web servers and application servers process data before returning results to the user. See scripting language
, Java applet
, Web server
, application server
and database server