什么是N层架构?

Jos*_*ody 191 architecture multi-tier n-tier-architecture

我最近看到很多开发人员的职位发布,其中包括一个或多或少类似的句子:"必须具有N层体系结构的经验",或"必须能够开发N层应用程序".

这让我想问一下,什么是N-Tier架构?如何获得它的经验?

Eug*_*ota 245

维基百科:

在软件工程中,多层体系结构(通常称为n层体系结构)是一种客户端 - 服务器体系结构,其中表示,应用程序处理和数据管理在逻辑上是独立的进程.例如,使用中间件为用户和数据库之间的数据请求提供服务的应用程序采用多层体系结构."多层架构"的最广泛使用是指三层架构.

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

替代文字

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

对于n层编程,您需要以某种称为"数据集"的可传输形式打包数据,并通过网络传输它们..NET的DataSet类或像SOAP这样的Web服务协议很少通过网络传播对象.

  • 这取决于你如何计算"层"(逻辑,物理等),但你可以轻松地编写一个应用程序涉及3个以上的过程.UI,UI平台(如Eclipse RCP),Web服务,BLL,DAL,数据库,身份验证服务,Reporting Services,分析服务...... (7认同)
  • "3层"和"N层"有区别吗? (6认同)
  • @chakrit:在我的时间(我已经老了)更多2层(客户端 - 服务器)自动引用n层. (6认同)

tsi*_*ilb 21

它基于您如何将表示层与核心业务逻辑和数据访问分开(Wikipedia)

3层表示表示层+组件层+数据访问层.N层是在这三个之外添加不必要的层并且用流行语标记的,所以看起来你的架构师看起来并不是一堆破解猴子.我说这是基于我必须使用的N层架构.

  • 实际上,如果其中一个层由远程方(例如支付处理器)托管,那么该层可能不那么"不必要" (12认同)

180*_*ION 15

它是一个流行语,指的是像普通的Web架构,例如Javascript - ASP.Net - 中间件 - 数据库层.这些东西都是"等级".