【发布时间】:2010-11-14 00:22:33
【问题描述】:
N-Tiered 和 N-Layered 架构/设计是什么意思?
N-Tiered 和 N-Layered 架构/设计之间有什么区别吗?
如果是,有什么区别?
【问题讨论】:
标签: layered
N-Tiered 和 N-Layered 架构/设计是什么意思?
N-Tiered 和 N-Layered 架构/设计之间有什么区别吗?
如果是,有什么区别?
【问题讨论】:
标签: layered
人们经常交替使用这两个术语,因为他们可以将架构描述为多层和多层。我的看法是,通常层是指某种物理分离,而层更多是逻辑分离。
例如,我会说一个典型的 Web 应用程序有一个前端 - 显示在浏览器中的内容 - 以及在应用程序服务器上运行的实际应用程序逻辑和一个数据库。这可以称为 3 层,因为有一个数据库服务器、一个应用程序服务器和客户端机器。然而,同样容易的是,可以参考数据库层、逻辑层和表示(或 UI)层。
【讨论】:
N-tiered 是指系统的“分布式”层(即服务器和客户端),而 n-layered 是指独立程序中的层;尽管这两者经常互换使用,但有些人认为存在显着差异(就像我上面提到的那个),正如维基百科上 Multitier architecture 和 Multilayered architecture 的第一段所见,解释了差异。
【讨论】:
这个SCEA Study Notes解释了分层和分层架构之间的JEE差异
Java EE 系统的层
* 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.
Java EE 系统的层
* 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.
【讨论】: