One of the most successful models to emerge from the client/server world has been the three-tiered model. A tier, or layer, is a collection or set of independent homogenous objects (each solving a small problem) that together solve a larger but common problem.
Consider a typical PC application today. It most likely interacts with a user, processes some data, and perhaps persists its state somewhere—hence three tiers.
The three tiers are generally known as presentation, business logic, and data services. Figure 2.1 illustrates this idea and compares it to the monolithic approach, in which abstractions such as business logic and user interfaces are all bundled into one.
Figure 2.1. Monolithic versus three-tiered design.