Search this book | Previous | Table of contents | Next

Client/server model of computing

This chapter discusses the client/server model of computing, a fundamental aspect of Internet networking.

To truly understand how much of the Internet operates, including the Web, it is important to understand the concept of client/server computing. The client/server model is a form of distributed computing where one program (the client) communicates with another program (the server) for the purpose of exchanging information.

The client's responsibility is usually to:

  1. Handle the user interface.
  2. Translate the user's request into the desired protocol.
  3. Send the request to the server.
  4. Wait for the server's response.
  5. Translate the response into "human-readable" results.
  6. Present the results to the user.

The server's functions include:

  1. Listen for a client's query.
  2. Process that query.
  3. Return the results back to the client.

A typical client/server interaction goes like this:

  1. The user runs client software to create a query.
  2. The client connects to the server.
  3. The client sends the query to the server.
  4. The server analyzes the query.
  5. The server computes the results of the query.
  6. The server sends the results to the client.
  7. The client presents the results to the user.
  8. Repeat as necessary.

Figure 3.1, a typical client/server interaction

This client/server interaction is a lot like going to a French restaurant. At the restaurant, you (the user) are presented with a menu of choices by the waiter (the client). After making your selections, the waiter takes note of your choices, translates them into French, and presents them to the French chef (the server) in the kitchen. After the chef prepares your meal, the waiter returns with your diner (the results). Hopefully, the waiter returns with the items you selected, but not always; sometimes things get "lost in the translation."

Flexible user interface development is the most obvious advantage of client/server computing. It is possible to create an interface that is independent of the server hosting the data. Therefore, the user interface of a client/server application can be written on a Macintosh and the server can be written on a mainframe. Clients could be also written for DOS- or UNIX-based computers. This allows information to be stored in a central server and disseminated to different types of remote computers. Since the user interface is the responsibility of the client, the server has more computing resources to spend on analyzing queries and disseminating information. This is another major advantage of client/server computing; it tends to use the strengths of divergent computing platforms to create more powerful applications. Although its computing and storage capabilities are dwarfed by those of the mainframe, there is no reason why a Macintosh could not be used as a server for less demanding applications.

In short, client/server computing provides a mechanism for disparate computers to cooperate on a single computing task.

Search this book | Previous | Table of contents | Next

This page was first published on September 26, 1995. Feel free to send comments.