Three-tier Application Model
One of the key elements of any application design is the system architecture. The system architecture defines how pieces of the application interact with each other, and what functionality each piece is responsible for performing. There are three main classes of application architecture. They can be characterized by the number of layers between the user and the data. Each layer generally runs on a different system or in a different process space on the same system than the other layers. The three types of application architecture are single-tier (or monolithic), two-tier, and n-tier, where n can be three or more.
The monolithic application consists of a single application layer that supports the user interface, the business rules, and the manipulation of the data all in one. The data itself could be physically stored in a remote location, but the logic for accessing it is part of the application. Microsoft Word is an example of a monolithic application. The user interface is an integral part of the application. The business rules, such as how to paginate and hyphenate, are also part of the application. The file access routines, to manipulate the data of the document, are also part of the application. Even if there are multiple DLLs that handle the different functionality, it is still a monolithic application.
In a two-tier application, the business rules and user interface remain as part of the client application. The data retrieval and manipulation is performed by another separate application, usually found on a physically separate system. This separate application could be something like SQL Server or Oracle, which is functioning as a data storage device for the application. This type of application is widely used in the traditional client-server types of applications. PowerBuilder or Visual Basic both integrating with Oracle are two examples of tools that can be used to create client-server systems.
In another type of two-tier application, the business rules are executed on the data storage system. This is the case in applications that are using stored procedures to manipulate the database. A stored procedure is a database function that is stored at the database server. It can be executed one of two ways. A client application can explicitly call a stored procedure, which would then be run on the server. A trigger can also execute a stored procedure, which is the occurrence of a specific event in the data. For example, a trigger could be set to fire whenever the balance field in an account record reaches $50.00 or less. This trigger could execute a stored procedure that sent a notification to the account holder that their balance was low.
With three-tier applications, the business rules are removed from the client and are executed on a system in between the user interface and the data storage system. The client application provides user interface for the system. The business rules server ensures that all of the business processing is done correctly. It serves as an intermediary between the client and the data storage. In this type of application, the client would never access the data storage system directly. This type of system allows for any part of the system to be modified without having to change the other two parts. Since the parts of the application communicate through interfaces, then as long as the interface remains the same, the internal workings can be changed without affecting the rest of the system.
The transaction processing systems provide an environment in which the business and data objects of a system can operate. The system can manage these objects so that the system can operate at its highest efficiency, no matter what the load on the system.