Read this knowledge nugget if you want to learn what a Tier is in Software Architecture and why you would use it.
Unfortunately I do not know who coined the term originally. A Tier groups layers into larger building blocks that will be physically implemented. For example, on one physical server or on an instance of a server (a process) somewhere on a physical server.
How many and which tiers you build is driven by those non-functional requirements that define the architecture qualities for the target architecture. Examples are: architectural qualities such as scalability, availability, performance, throughput, and others.
Figure 1 illustrates an exemplary tier-structure for a web-based application. The figure shows that the application is split into three tiers:
- Client Tier – The client application. If it used by a human user it will typically be located on the user’s workstation.
- Server Tier – This tier represents a physical server. Based on non-functional requirements I have made the decision to place all functional application layers onto one physical tier.
- Database Tier – This tier represents the database server and contains the data layer.
For more details on layer please refer to Knowledge Nugget: What is a Layer in Software Architecture?.
[Pic2010] Pichler, M. 2010, “Knowledge Nugget: Layer”, A Practical Guide to Software Architecture [online] available at https://applicationarchitecture.wordpress.com/2010/04/27/knowledge-nugget-layer/
[pra2006] pranshujain. 2006, “Layers and Tiers”, Software Architecture and Content Management [online] available at http://pranshujain.wordpress.com/2006/09/15/layers-and-tiers/
Copyright © 2010 Michael Pichler