问题
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?
回答1:
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
回答2:
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.
回答3:
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.
来源:https://stackoverflow.com/questions/6978991/what-is-the-difference-between-tier-vs-layer-application