In the early 1980s, personal computers (PCs) became very popular. They were less expen-
sive and had more processing power than the dumb terminal counterparts. This paved
the way for true distributed, or client-server , computing. The client or the PCs now ran the
user interface programs. It also supported graphical user interfaces (GUIs), allowing the
users to enter data and interact with the mainframe server. The mainframe server now
hosted only the business rules and data. Once the data entry was complete, the GUI
application could optionally perform validations and then send the data to the server for
execution of the business logic. Oracle Forms-based applications are a good example of
two-tier architecture. The forms provide the GUI loaded on the PCs, and the business
logic (coded as stored procedures) and data remain on the Oracle database server.
Then there was another form of two-tier architecture in which not only the UI but
even the business logic resided on the client tier. This kind of application typically con-
nected to a database server to run various queries. These clients are referred to as thick or
fat clients because they had a significant portion of the executable code in the client tier
(see Figure 1-2).
Figure 1-2. Two-tier architecture