我有一个Web应用程序,在Web托管上部署如下:
这被认为是2层架构还是3层架构?
我从不同的来源看到了不同的解释
此来源定义2层
在2层体系结构中,Web服务器响应对Web页面的请求,而数据库服务器则提供后端数据存储
此来源定义多层
在3层体系结构中,Web服务器链接到中间层,该层通常包括执行特定任务的一系列应用程序服务器,以及现有公司系统的后端层
希望有人能澄清这一点。
答案 0 :(得分:1)
这实际上取决于您在问题中“层级”一词的理解。
从大多数Web应用程序的基础架构/物理角度来看,您将拥有3层:
Client (browser) <--> Application Server <--> Database
与大多数由2层组成的桌面应用程序相反:
Client <--> Database
请注意,通过这个定义,网站不是总是 3层 - 例如,您可能在一个只计算复利的简单网站中没有任何持久性。
在Web应用程序架构中,从逻辑的角度来看,您经常拥有抽象表示上述层的层 - 例如在 MVC 中,您将拥有模型对应于数据库,控制器对应于在服务器上执行的逻辑,而视图对应于呈现给客户端的内容。
所以,在基础设施方面,你有一个3层架构(因为你显然是第一种情况),但从你所描述的,你的网站本身可能没有遵循严格的多层方法,它结合了多个逻辑层合为一体。
请参阅此wikipedia article,它将进一步澄清问题。
更新:this thread似乎也澄清了这个问题。