20

What does it mean by N-Tiered and N-Layered architecture/design?

Is there any difference between N-Tiered and N-Layered architecture/design?

If yes, what is the difference?

user366312
  • 16,949
  • 65
  • 235
  • 452
  • Related: http://stackoverflow.com/questions/120438/whats-the-difference-between-layers-and-tiers – Marijn Oct 05 '11 at 11:44

3 Answers3

24

People often use the two terms interchangably in that they can describe an architecture as being both multi-layered and multi-tiered. My take on it is that generally a tier refers to some physical separation while a layer is more of a logical separation.

For example, a typical web application I would say has a front end - what's displayed in the browser - and the actual application logic running on the application server, and a database. This could be referred to as 3 tiered, since there is a database server, an application server and the client machine. Just as easily, however, one may refer to the database layer, the logic layer and the presentation (or UI) layer.

IRBMe
  • 4,335
  • 1
  • 21
  • 22
17

N-tiered refers to the "distributed" layers of a system (i.e. server and client), whereas n-layered refers to the layers in a self-contained program; although the two are often used interchangeably, some suggest that there is a significant difference (like the one I mentioned above), as seen on the first paragraphs on Multitier architecture and Multilayered architecture on Wikipedia explains the difference.

Cecil Has a Name
  • 4,962
  • 1
  • 29
  • 31
1

This SCEA Study Notes explains the JEE differences between tiered and layered architecture

Tiers of a Java EE System

* Client (GUI and Web): GUI directly interacts with web tier. Web uses browser, applets to interact with web server through HTTP. Responsible for direct presentation and interaction with user.
* Web components: processes web requests. Acts as mediator between clients and business components.
* Business: (solves domain-specific) business problems. The abstract business logic processing happens in this tier.
* Integration and Resource: handles connectivity with data stores and other (legacy) systems. 

Layers of a Java EE System

* Virtual platform (component APIs): used to implement/support business logic. API Components include: JavaBeans, Java Servlets, JavaServer Pages/Faces, Java Message Service API, Java Transaction API, etc.
* Application infrastructure (container): responsible for executing the application. Also provides services like: security, transactions, JNDI, and other connectivities.
* Enterprise services (OS): responsible for the execution environment of the application infrastructure. Provides computing time and access to (abstract) hardware.
* Compute and storage: the hardware or physical server. Provides computing power for the OS.
* Networking infrastructure: responsible for networking services. 
Pablo Cantero
  • 6,239
  • 4
  • 33
  • 44