Architecture 什么是N层体系结构?

Architecture 什么是N层体系结构?,architecture,n-tier-architecture,multi-tier,Architecture,N Tier Architecture,Multi Tier,我最近看到不少开发人员的招聘帖子,其中有一句话或多或少是这样写的:“必须有N层架构的经验”或“必须能够开发N层应用程序” 这让我不禁要问,什么是N层体系结构?如何获得it经验?据我所知,N-Tier使用单独的物理机器将业务逻辑、客户端访问和数据彼此分离。理论上,它们中的一个可以独立于另一个进行更新。这是一个流行词,指的是像普通的Web架构一样的东西,例如Javascript-ASP.Net-中间件-数据库层。这些东西都是一个“层”。: 在软件工程中,多层 架构(通常称为 n层体系结构)是一种 客

我最近看到不少开发人员的招聘帖子,其中有一句话或多或少是这样写的:“必须有N层架构的经验”或“必须能够开发N层应用程序”


这让我不禁要问,什么是N层体系结构?如何获得it经验?

据我所知,N-Tier使用单独的物理机器将业务逻辑、客户端访问和数据彼此分离。理论上,它们中的一个可以独立于另一个进行更新。

这是一个流行词,指的是像普通的Web架构一样的东西,例如Javascript-ASP.Net-中间件-数据库层。这些东西都是一个“层”。

在软件工程中,多层 架构(通常称为 n层体系结构)是一种 客户机-服务器体系结构,其中, 演示文稿、应用程序 处理和数据管理是非常重要的 逻辑上独立的进程。对于 例如,使用 为数据请求提供服务的中间件 在用户和数据库之间 多层体系结构。最 “多层结构”的广泛使用 “架构”指的是三层架构 建筑

什么是“层次”值得商榷,但在我看来,它至少需要跨越流程边界。或者它被称为层。但是,它不需要在物理上不同的机器中。虽然我不推荐,但您可以在同一个机箱上托管逻辑层和数据库

编辑:其中一个含义是表示层和逻辑层(有时称为业务逻辑层)需要跨越机器边界,有时需要跨越不可靠、缓慢和/或不安全的网络。这与简单的桌面应用程序非常不同,在桌面应用程序中,数据与文件或Web应用程序位于同一台计算机上,您可以直接访问数据库


对于n层编程,您需要将数据打包成某种称为“dataset”的可传输形式,并将其传送到网络上。NET的类或Web服务协议(如Web服务协议)很少尝试将对象传送到网络上。

这取决于您如何将表示层与核心业务逻辑和数据访问分离()

  • 表示表示层+组件层+数据访问层
  • N层是指在这些层之外添加额外的层,通常用于额外的模块化、可配置性或与其他系统的互操作性

当我们谈论分层时,我们通常谈论物理进程(具有不同的内存空间)

因此,如果应用程序的层部署在不同的流程中,那么这些不同的流程将是不同的层

例如,在3层应用程序中,业务层与大型机(单独的流程)对话,与报告服务(单独的流程)对话,那么该应用程序将是5层


因此,通用名称是n层。

n层数据应用程序是分为多个层的数据应用程序。也称为“分布式应用程序”和“多层应用程序”,n层应用程序将处理分离为离散的层,这些层分布在客户机和服务器之间。当您开发访问数据的应用程序时,应该在组成应用程序的各个层之间有一个明确的分离

等等


N层数据应用程序是分为 多层。也称为“分布式应用程序”和“多层应用程序” 应用程序,“n层应用程序将处理分离为离散 分布在客户端和服务器之间的层。当你 开发访问数据的应用程序时,您应该有明确的 构成应用程序的各个层之间的分离

一个典型的n层应用程序包括一个表示层,一个中间层 层和数据层。分离不同层的最简单方法 在n层应用程序中,是为每一层创建离散的项目 要包含在应用程序中的。例如 表示层可能是Windows窗体应用程序,而 数据访问逻辑可能是位于中间层的类库。 此外,表示层可能与数据通信 在中间层中通过诸如服务之类的服务访问逻辑。 将应用程序组件分为不同的层会增加 应用程序的可维护性和可伸缩性。它是通过 能够更轻松地采用可应用于特定领域的新技术 单层,无需重新设计整个解决方案。在里面 此外,n层应用程序通常将敏感信息存储在 中间层,保持与表示层的隔离


摘自微软。

如果我理解了这个问题,那么在我看来,提问者真的在提问“好吧,三层架构已经被很好地理解了,但似乎四层架构(或者概括地说,N层架构)的含义混合了炒作、困惑和不确定性。那么,人们广泛理解和认同的N层定义是什么?”

这实际上是一个相当深奥的问题,为了解释原因,我需要更深入一点。请耐心听我说

经典的三层体系结构:数据库、“业务逻辑”和表示,是阐明如何遵守关注点分离原则的好方法“想要为客户提供服务,我不必查看整个系统来找出如何做到这一点,特别是,决策业务问题不应该随意分散在代码中

现在,这个模型已经运行了几十年,是经典的“客户机-服务器”模型。快进到云产品,在云产品中,web浏览器是广泛的物理分布用户的用户界面,等等
In a closed layer architecture, a layer can only call the next layer immediately down.
In an open layer architecture, a layer can call any of the layers below it.