Over the last thirty plus years, in which computer software applications have been vital to business operations, the concept of client/server applications has evolved. In the early 1980’s the term, Client/Server, primarily referenced capabilities of new powerful centralized hardware. The computer world is different today and the concept is better defined as a system where the different logical components are separated from each other. The first of the three basic logical components is the Presentation Logic. The Presentation Logic is what is shown to the end user and handles the inputs and outputs of the underlying application. The second logical component is the Processing Logic. The Processing Logic handles all of the Input and Output processing and contains all of the business rules and logical processing that drives the system. The final logical component is the Storage Logic, which is where the data is stored and retrieved from and often takes the form of a database. These three components can be found in any type of Client/Server database environment.
How these logical components are grouped together forms the basis of a layering approach to a client/server system. The most basic of these is called a One-tier application, where all three logic components are grouped together as part of the client software. In this configuration each client “application has its own copy of the database engine; only the data is shared, not the database logic itself.” (Fastie, 1999) This type of system is easy to develop but has several drawbacks when many users are using it. To overcome these shortcomings, most applications do not use the One-tier environment and instead use a Two-tier or Three-tier environment to separate the different logical components.
The Two-tier client/server environment divides the three components between two tiers. The Server tier, which is usually a separate application running on a server; and the Client tier, which could have multiple instances running simultaneously allowing multiple users to work easily. A Two-tier environment comes in three different variations, as shown in Figure 1 below, a flat client, a thin client, and a distributed type.
The Fat Client places the responsibility for presenting the user interface, handling the inputs and outputs, along with the processing of those transactions and the business logic that communicates with the database, within the client application. Leaving only the basic storage and retrieval of the data requested within the server application. A Fat Client client/server environment works best for online multimedia games, where hosting the video content on the server would be slow and costly.
In contrast, a Thin Client environment places no processing logic into the client. A Thin Client places the responsibility for processing inputs and outputs on the server side, where it also is responsible for the retrieval and storage of the data, as well as all related...