Monday, November 28, 2016

N-tier vs N-Layer

N-tier Architecture


N-tier (multi-tier) architecture is a client – server architecture in which presentation, application processing, and data management functions are physically separated. The most widespread use of multi-tier architecture is the three-tier architecture. A three-tier architecture is typically composed of
  • Presentation Tier
  • Domain Logic Tier (Business Tier) 
  • Data Storage tier (Data Tier)
Example: In web development field, an eCommerce website is often referred to as built in using three-tiers:
  • A front-end web server serving static content, and potentially some cached dynamic content. In web based application, Front End is the content rendered by the browser.
  • A dynamic content processing and generation level application server (e.g., ASP.NET)
  • A back-end database or data store – comprising both data sets and the database management system software that manages and provides access to the data.
N-layer Architecture

N-Layer (Multi-Layer) Architecture – A software architecture that uses many layers for allocating the different responsibilities of a software product.
  • Presentation layer (a.k.a. UI layer, view layer, presentation tier in multitier architecture)
  • Application layer (a.k.a. service layer or Controller Layer)
  • Business layer (a.k.a. business logic layer (BLL), domain layer)
    •  The part of the program that encodes the real-world business rules that determine how data can be created, displayed, stored, and changed.
  • Data access layer (a.k.a. persistence layer, logging, networking, and other services which are required to support a particular business layer.
    • Any software layer that makes it easier for a program to persist its state is generically called a persistence layer. Most persistence layers will not achieve persistence directly but will use an underlying database management system.

N-tier vs N-layer

Tier indicates a physical separation of components, which may mean different assemblies such as DLL, EXE, etc. on the same server or multiple servers. Layer indicates logical separation of components, such as having distinct namespaces and classes for the Database Access Layer, Business Logic Layer and User Interface Layer. 

No comments:

Post a Comment