Architecture 以下分离是否被视为2层或3层体系结构?
我有一个web应用程序,在web主机上部署如下:Architecture 以下分离是否被视为2层或3层体系结构?,architecture,n-tier-architecture,Architecture,N Tier Architecture,我有一个web应用程序,在web主机上部署如下: 代码(不分离BLL、DAL等)上载到web主机 数据库(MSSQL备份文件)正在上载到web托管数据库 这是2层体系结构还是3层体系结构 我从不同的来源看到了不同的解释 若代码和数据库驻留在同一台服务器上,那个么它是两层的。若代码和数据库位于不同的服务器上,那个么它是三层的 带有数据库的web应用程序至少具有3层体系结构 它是一个两层体系结构 按此来源定义的2层 在两层体系结构中,web服务器响应网页请求,数据库服务器提供后端数据存储 此来源的多
在两层体系结构中,web服务器响应网页请求,数据库服务器提供后端数据存储
此来源的多层定义
在三层体系结构中,web服务器链接到中间层,中间层通常包括一系列执行特定任务的应用程序服务器,以及现有公司系统的后端层
希望有人能澄清这一点。这实际上取决于您对问题中“层次”一词的理解 从基础设施/物理的角度来看,在大多数web应用程序中,您将有3层:
客户端(浏览器)应用服务器数据库
客户端数据库
更新:似乎也澄清了这个问题。因此,我可以得出结论,从基础设施的角度来看,任何具有数据库的网站都至少是三层架构,而仅显示信息的静态网站是两层架构。关于分层(逻辑角度),is MVC本身默认为3层架构。例如:以ASP.NETMVC为例,默认情况下它有模型、视图和控制器,但它仍然在单个项目中。这意味着不可能将模型、视图和控制器分别部署到不同的web服务器中。因为我在源代码上读到过这样的说法,即只有当代码本身(bll,dal)被编写成可以部署到不同的服务器时,分层才被认为是有效的。您的第一条评论是正确的-n-tier是关于物理层的,在大多数情况下是由网络划分的。关于第二个,您可以将MVC视为层(如果您将每种类型的组件控制器/视图/模型视为一个实体)或类似组件。MVC只是一种设计模式。它未连接到多个层。您在问题中提到了代码分离,这就是为什么我在回答中提到了MVC的主题。这是物理层和逻辑组件/层之间的一个重要区别。这表明,只有当代码本身(bll,dal)可以部署到不同的服务器时,分层才被认为是有效的@vincentsty,你得出了什么结论吗?