15

Last week I was talking about the 3 tier architecture with my seniors. I was saying that it has a UI tier, Business Logic Tier and Data Access tier. After I have finished, he just told me that, I am talking about 3 layered architecture, not a 3 tier architecture. Then I asked him what is the difference, he assigned me the task to make a documentation about the difference. so Here I am, Os far, I come to point that a 3 tier architecture is 1. A client in on machine, 2. The application Server is hosted in one machine 3. The database server is hosted in another machine

where 3 layer architecture(UI, BLL abd DAL) can work on same machine. My question to you, Am I correct? What is the difference according to your knowledge? Can anyone please explain?

Pankouri
  • 676
  • 3
  • 12
  • 29
  • 1
    possible duplicate of [What's the difference between "Layers" and "Tiers"?](http://stackoverflow.com/questions/120438/whats-the-difference-between-layers-and-tiers) – archil Aug 08 '11 at 07:37
  • Short and educational video http://www.youtube.com/watch?v=VWxGtl5J7WM – robi-y Aug 29 '12 at 10:19
  • Definitely duplicate of [What's the difference between "Layers" and "Tiers"](http://stackoverflow.com/questions/120438/whats-the-difference-between-layers-and-tiers) – fernandopasik Dec 31 '13 at 19:19

3 Answers3

20

Your explanation is right: a n-tier architecture is a physical structuring mechanism, while a n-layer architecture is a logical structuring mechanism.

While is true, for example, that a 3-tier application is (at least) a 3-layer application, a 3-layer application could have only 1 or 2 tier(s).

You can also look at these articles:

http://davidhayden.com/blog/dave/archive/2005/07/22/2401.aspx

http://en.wikipedia.org/wiki/Multitier_architecture

mamoo
  • 8,156
  • 2
  • 28
  • 38
0

Layers are conceptual entities, and are used to separate the functionality of software system from a logical point of view; when you implement the system you organize these layers using different methods; in this condition we refer to them not as layers but as tiers.

gst
  • 828
  • 5
  • 15
0

from wikipedia:

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

Tiers vs Layers is both a software and hardware related difference. There's a client-server divide or a logical layering. The boundaries for either concept depend on the responsibilities of each conceptual component of the architecture. For the most wellknown example of layering, see the OSI model.

mtijn
  • 3,610
  • 2
  • 33
  • 55