Two-Tier Client-Server Architecture


Overview

This section summarizes the development of two-tier client-server architecture, and provides a simple example of this model. It also summarizes the main problems of the two-tier model.

This sections discusses

Rational for the Two-Tier Model

The whole point of client-server architecture is to distribute components of an application between a client and a server so that, for example, a database can reside on a server machine (for example a UNIX box or mainframe), a user interface can reside on a client machine (a desktop PC), and the business logic can reside in either or both components.

The client-server architecture, outlined here, is known as two-tier client-server architecture.

A Simple Example

The UNIX print spooler is an example of a two-tier client-server architecture. The client (the UNIX lp command) reads a file to be printed and passes the file's contents to the server. The server performs a service by printing the file. All the basic characteristics of client-server computing are present in this example.

Problems with Two-Tier Architecture

Two-tier client-server architecture has a number of problems. For example, if database access functionality (such as embedded database queries) and business logic are contained in the client component, any changes to the business logic, database access, or even the database itself often requires a new client component to be deployed for all users of the application. Usually, the effects of such changes would break earlier versions of the client component, resulting in a fragile system. The problems of two-tier client-server architecture led to the development of three-tier client-server architecture.