Multitier architecture: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
mNo edit summary
Line 1: Line 1:
In [[software engineering]], '''multi-tier architecture''' (often referred to as ''n-tier architecture'') is a [[client-server architecture]] in which an application is executed by more than one distinct software agent. For example, an application that uses [[middleware]] to service data requests between a user and a [[database]] employs multi-tier architecture. The most widespread use of "multi-tier architecture" refers to '''three-tier architecture'''.
In [[software engineering]], '''multi-tier architecture''' (often referred to as '''n-tier architecture''') is a [[client-server architecture]] in which an application is executed by more than one distinct software agent. For example, an application that uses [[middleware]] to service data requests between a user and a [[database]] employs multi-tier architecture. The most widespread use of "multi-tier architecture" refers to '''three-tier architecture'''.


== Three-tier architecture ==
== Three-tier architecture ==

Revision as of 16:29, 15 June 2007

In software engineering, multi-tier architecture (often referred to as n-tier architecture) is a client-server architecture in which an application is executed by more than one distinct software agent. For example, an application that uses middleware to service data requests between a user and a database employs multi-tier architecture. The most widespread use of "multi-tier architecture" refers to three-tier architecture.

Three-tier architecture

Visual overview of a Three-tiered application

Three-tier is a client-server architecture in which the user interface, functional process logic, data storage and data access are developed and maintained as independent modules, most often on separate platforms. The term "three-tier" or "three-layer", as well as the concept of multitier architectures, seems to have originated within Rational Software[citation needed].

The three-tier model is considered to be a software architecture and a software design pattern.

Apart from the usual advantages of modular software with well defined interfaces, the three-tier architecture is intended to allow any of the three tiers to be upgraded or replaced independently as requirements or technology change. For example, a change of operating system from Microsoft Windows to Unix would only affect the user interface code.

Typically, the user interface runs on a desktop PC or workstation and uses a standard graphical user interface, functional process logic may consist of one or more separate modules running on a workstation or application server, and an RDBMS on a database server or mainframe contains the data storage logic. The middle tier may be multi-tiered itself (in which case the overall architecture is called an "n-tier architecture").

The 3-Tier architecture has the following three tiers.

  1. Presentation Tier
  2. Application Tier / Logic Tier / Business Logic Tier / Transaction Tier
  3. Data Tier

(*note Tier means Layer)

Comparison with the MVC architecture

At first glance the three tiers may seem similar to the model-view-controller (MVC) concept, however topologically they are different, and don't even address the same problems. A fundamental rule in a three-tier architecture is the client tier never communicates directly with the data tier; in a three-tier model all communication must pass through the middleware tier. Conceptually the three-tier architecture is linear. This addresses the question of how to pass information between a user and a database. However, the MVC architecture is triangular: the View sends updates to the Controller, the Controller updates the Model, and the View gets updated directly from the Model. This addresses questions of how a user interface manages the components on the screen. (MVC interface components are often used in applications with 3-tier architecture.)

From a historical perspective the three-tier architecture concept emerged in the 1990's from observations of distributed systems (e.g., web applications) where the client, middleware and data tiers ran on physically separate platforms. Whereas MVC comes from the previous decade (by work at Xerox PARC in the late 1970's and early 1980's) and is based on observations of applications that ran on a single graphical workstation; MVC was applied to distributed applications much later in its history (see Model 2).

Web development usage

In the web development field, three-tier is often used to refer to websites, commonly electronic commerce websites, which are built using three tiers:

  1. A front end Web server serving static content
  2. A middle dynamic content processing and generation level application server, for example Java EE platform
  3. A back end database, comprising both data sets and the database management system or RDBMS software that manages and provides access to the data

References


Further reading

  • Erik Meijer and Danny van Velzen (2001). "Haskell Server Pages Functional Programming and the Battle for the Middle Tier" (PDF). Electronic Notes in Theoretical Computer Science. 41 (1). — Meijer and van Velzen present an overview of Haskell Server Pages from a programmer's perspective, and describe the three tier model.
  • "Three Tier Software Architectures" (HTML).
  • "MVC XEROX PARC 1978–79" (HTML).


This article is based on material taken from the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.

See also