最近我看到了很多招聘 IT 开发者的工作职位,其中有一句话写得差不多是这样的:“必须具备 N 层架构经验”或者“必须能够开发 N 层应用程序”。
这让我想问,什么是 N 层架构?如何获得相关经验?
最近我看到了很多招聘 IT 开发者的工作职位,其中有一句话写得差不多是这样的:“必须具备 N 层架构经验”或者“必须能够开发 N 层应用程序”。
这让我想问,什么是 N 层架构?如何获得相关经验?
维基百科:
多层次架构(多层架构,英语:n-tier architecture)是应用程序架构的一种形式,将展示、应用处理和数据管理作为逻辑上不同的进程。例如,使用中间件来服务于用户和数据库之间的数据请求的应用程序采用了多层次架构。最广泛的“多层架构”应用通常指三层架构。
人们对于“层”的定义存在争议,但在我看来它至少需要跨越进程边界,否则被称为“层”。但是,它不需要物理上位于不同的计算机上。虽然我不建议这样做,但您可以在同一台计算机上托管逻辑层和数据库。
(来源: wikimedia.org)
编辑:一个含义是展示层和逻辑层(有时称为业务逻辑层)需要跨越机器边界“通过电线”进行通信,有时还要在不可靠、慢、不安全的网络上通信。这与简单的桌面应用程序或 Web 应用程序非常不同,因为数据存储在文件中或者您可以直接访问数据库。
在n-tier编程中,您需要将数据打包成一种可传输的形式,称为“数据集”,并将它们通过网络传输。.NET的DataSet类或Web服务协议,例如SOAP,都是尝试通过网络传输对象的方式之一。
这是一个流行词汇,指的是类似于常规Web架构中的东西,例如Javascript - ASP.Net - 中间件 - 数据库层。每个部分都是一个“层”。
摘自微软网站。
据我了解,N-Tier通过使用单独的物理机器将业务逻辑、客户端访问和数据分离开来。其理论是其中之一可以独立于其他部分进行更新。
当我们谈论层次时,通常是指物理进程(具有不同的内存空间)。
因此,如果应用程序的层部署在不同的进程中,则这些不同的进程将成为不同的层。
例如,在一个3层应用程序中,业务层与大型机(单独的进程)进行通信,并与报告服务(单独的进程)进行通信,则该应用程序将为5层。
因此,通用名称为n层。
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.