In software engineering, multi-tier architecture (often referred to as n-tier architecture ) is a client-server architecture in which the presentation, the application processing, and the data management are logically separate processes. 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 .

N-tier application architecture provides a model for developers to create a flexible and reusable application. By breaking up an application into tiers, developers only have to modify or add a specific layer, rather than have to rewrite the entire application over. There should be a presentation tier, a business or data access tier, and a data tier.

The concepts of layer and tier are often used interchangeably. However, one fairly common point of view is that there is indeed a difference, and that a layer is a logical structuring mechanism for the elements that make up the software solution, while a tier is a physical structuring mechanism for the system infrastructure.

Three-tier architecture

' Three-tier' is a client-server architecture in which the user interface, functional process logic ("business rules"), computer data storage and data access are developed and maintained as independent modules, most often on separate platforms.

The three-tier model is 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 in the presentation tier 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 computer data storage logic. The middle tier may be multi-tiered itself (in which case the overall architecture is called an "n-tier architecture").

Three-tier architecture has the following three tiers:

Comparison with the MVC architecture

At first glance, the three tiers may seem similar to the MVC (Model View Controller) concept; however, topologically they are different. 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. 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.

From a historical perspective the three-tier architecture concept emerged in the 1990s 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 1970s and early 1980s) 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, and potentially some are cached dynamic content.
  2. A middle dynamic content processing and generation level application server, for example Java EE, ASP.NET, PHP 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.

Other considerations

Data transfer between tiers is part of the architecture. Protocols involved may include one or more of SNMP, CORBA, Java RMI, .NET Remoting, Windows Communication Foundation, sockets, UDP, web services or other standard or proprietary protocols. Often Middleware is used to connect the separate tiers. Separate tiers often (but not necessarily) run on separate physical servers, and each tier may itself run on a cluster.

Traceability

The End-To-End traceability of n-tier systems is a challenging task which becomes more importance when systems increase in complexity. The Application Response Measurement defines concepts and APIs for measuring performance and correlating transactions between tiers.

See also

  • Business logic
  • Client-server architecture
  • Database-centric architecture
  • Front-end and back-end
  • Hierarchical internetworking model
  • Model-view-controller (MVC)
  • Open Services Architecture
  • Rich Internet application
  • Service layer
  • Web application
  • Multilayered architecture

External links

  • Linux journal, Three Tier Architecture


References

  1. ^ Deployment Patterns (Microsoft Enterprise Architecture, Patterns, and Practices)
  2. ^ Eckerson, Wayne W. "Three Tier Client/Server Architecture: Achieving Scalability, Performance, and Efficiency in Client Server Applications." Open Information Systems 10, 1 (January 1995): 3(20)

<webopedia>

Data-Application Tier Temp Table Support

Search Forums: Search SQL Server 2008 R2 Application and Multi-Server Management Forum Search All SQL Server (Pre-release) Forums

...

Amazon.com: "application tier": Key Phrase page

Key Phrase page for application tier: Books containing the phrase application tier

...

UK Border Agency | Changes to Tiers 1, 2 and 5 guidance ...

On 1 October 2009 new versions of the guidance notes and application forms for Tier 1, Tier 2, Tier 5 (Youth Mobility) and Tier 5 (Temporary Worker) applications were published.

...

Application-Tier Server Requirements for Team ...

Application-Tier Server Requirements for Team Foundation ... Installed on the same computer with the logical data tier (single-server)

...

Webopedia: N-Tier Application Architecture

An online computer dictionary and internet search engine for internet terms and techincal support.

...

Activating a Fail-Over Application-Tier Server

After you set up the primary data-tier and application-tier servers, you can add a warm standby computer for the application-tier server of Team Foundation.

...

APPLICATION TIER DATA DICTIONARY - Patent application ...

Abstract: A method of tracking dependencies in an application file, including analyzing the application file to identify at least one dependency in the application file ...

...

Changing Application Tier Platforms for E-Business ...

Here's another significant piece of news: it's now possible to migrate your E-Business Suite Release 12 application tier servers from one operating system platform to another.

...

Amazon.com: "remote application tier": Key Phrase page

Key Phrase page for remote application tier: Books containing the phrase remote application tier

...

Integrated three-tier application ... - Google Patent ...

Integrated three-tier application framework with automated class and table ... Brian Skinner et al

...