At EasyTechJunkie, we're committed to delivering accurate, trustworthy information. Our expert-authored content is rigorously fact-checked and sourced from credible authorities. Discover how we uphold the highest standards in providing you with reliable knowledge.
In computing, "multitier architecture" is a term applied to an arrangement of components or software in which the different functions required to complete an operation are segmented into separate physical or logical divisions. Each of the segments of the larger architecture is responsible for performing only a certain type of task and is mostly unaware of the internal workings of surrounding segments that are performing different tasks. The most common, and most basic, divisions used in multitier architecture are the presentation, logic and data tiers. Presentation is only responsible for showing information to a user, and the data tier is only responsible for storing or retrieving data, while the logic tier bridges the two, applying program logic to user input from the presentation and making sense of information from the data tier. Large computer systems use multitier architecture because it abstracts the different execution points of the control flow, allowing different precise components to be targeted for upgrades, testing or debugging while leaving the remaining modules untouched.
Multitier architecture also may be referred to as multi-layered architecture, although there is a difference. In most instances, using the term "multitier architecture" implies that the separate components of a system are actually located on physically different hardware or servers, while a layered system might only implement different applications running in the same physical space. Not all multitier systems use separate hardware, however; they may instead only separate the functions through logical divisions, such as different partitions on a single disk.
Most multitier architecture has three distinct tiers, although there can be more tiers, depending on the needs or setup of a system. The first tier is known as the presentation tier and is responsible for displaying information that is passed to it, as well as providing a way for users to give input, most commonly through a graphical user interface (GUI). The presentation tier connects to the logic tier, which is the area where user input is assessed, data is retrieved from the data tier, and any specific processing or calculations take place. The logic tier is more or less what traditionally is thought of as a standard computer application, although it has no facilities for directly displaying output and no way to directly receive input from a user.
The data tier is responsible only for writing and reading data and can take the form of an array of disks or a relational database management system (RDBMS). Although the data tier is responsible for managing the storage and retrieval of data in a multitier architecture setup, it has no awareness of the context of the data and deals only in records or disk input and output functions. A defining feature of the tiers in multitier architecture is that no one segment exceeds the boundaries of the tasks it is specified to do, so no business logic or data functionality is available in the presentation tier, and the logic tier cannot write files directly or directly access the GUI through which the user is working. All interactions take place through client-server-style communications, with each tier serving in some way as both a client and a server, depending on what interaction is taking place.
One of the reasons why a large computer network might use a multitier system is because each necessary step in the work flow is modular and can be handled independently of the other parts. This means the terminals or GUI that users employ can be changed without requiring modifications to the logic or data tiers. Similarly, the RDBMS or physical storage drives can be changed without affecting anything else. This modularity is very difficult, if not impossible, to achieve with a single-tier system in which all aspects are welded into a single compiled application.