N-Tiered vs N-Layered architecture/design [closed]

こ雲淡風輕ζ 提交于 2019-11-29 03:47:40

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.

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.

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. 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!