N 层(多层)、3 层、2 层架构示例
什么是 N 层?
N 层应用程序是指在分布式网络中的三个或更多个独立计算机上分布的程序。
N 层最常见的形式是 3 层应用程序,它分为三个类别。
- 用户计算机中的用户界面编程
- 更集中的计算机中的业务逻辑,以及
- 管理数据库的计算机中的所需数据。
此体系结构模型使软件开发人员能够以最大的灵活性创建可重用的应用程序/系统。
在N 层中,“N”是指使用的层数,例如——2 层、3 层或 4 层等。它也称为“多层体系结构”。
N 层体系结构是一种经过行业验证的软件体系结构模型。它通过提供可伸缩性、安全性、容错性、可重用性和可维护性解决方案,适合支持企业级客户端-服务器应用程序。它有助于开发人员创建灵活且可重用的应用程序。
N 层体系结构
此处展示了 N 层系统的图示表示——表示层、应用程序层和数据库层。

根据需求,这三个层可以进一步细分为不同的子层。
一些应用此体系结构的流行网站是
- MakeMyTrip.com
- Sales Force 企业应用程序
- 印度铁路 – IRCTC
- Amazon.com 等。
一些常用术语需要记住,以便更清晰地理解概念。
- 分布式网络:这是一种网络体系结构,其中位于网络计算机上的组件仅通过传递消息来协调和通信它们的行为。它是位于不同节点上的多个系统的集合,但在用户看来就像一个单一系统。
- 它提供了一个单一的数据通信网络,该网络可以由不同网络单独管理。
- 分布式网络的示例——其中不同的客户端在一侧连接到 LAN 体系结构,而在另一侧,它们连接到高速交换机以及包含服务节点的服务器机架。
- 客户端-服务器体系结构:这是一种体系结构模型,其中客户端(一个程序)向服务器(另一个程序)请求服务,即,它是通过互联网或内联网提供的请求-响应服务。在此模型中,客户端充当一套程序/代码,它在网络上执行一系列操作。而服务器,另一方面,是另一套程序,它将结果集作为请求发送到客户端系统。
- 在此,客户端计算机为最终用户提供接口,以从服务器请求服务或资源,另一方面,服务器处理请求并将结果显示给最终用户。
- 客户端-服务器模型的示例——自动取款机。银行是处理大型客户数据库中应用程序的服务器,而自动取款机是具有用户界面和一些简单应用程序处理的客户端。
- 平台:在计算机科学或软件行业中,平台是应用程序可以运行的系统。它由硬件和软件的组合组成,这些硬件和软件具有用于处理器/微处理器执行特定操作的内置指令。
- 简单来说,平台是任何应用程序可以运行和执行以完成特定任务的系统或基础。
- 平台示例 – 安装了 Windows 2000 或 Mac OS X 的个人计算机是 2 种不同平台的示例。
- 数据库:它是以有组织的方式收集信息,以便可以轻松地访问、管理和更新。
- 数据库示例 – MySQL, SQL Server 和 Oracle Database 是一些常见的数据库。
N 层体系结构的类型
N 层体系结构有不同类型,如3 层体系结构、2 层体系结构和 1 层体系结构。
首先,我们将看到 3 层体系结构,它非常重要。
三层架构
通过查看下图,您可以轻松识别出3 层体系结构有三个不同的层。
- 表示层
- 业务逻辑层
- 数据库层

这里我们以一个简单的学生表单示例来理解这三个层。它包含学生的信息,例如姓名、地址、电子邮件和图片。
用户界面层或表示层
表示层
private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e) { // Object of the Property layer clsStudent objproperty=new clsStudent(); // Object of the business layer clsStudentInfo objbs=new clsStudentInfo(); // Object of the dataset in which we receive the data sent by the business layer DataSet ds=new DataSet(); // here we are placing the value in the property using the object of the //property layer objproperty.id=int.Parse(DataGridl.SelectedItem.Cells[1].Text.ToString()); // In this following code we are calling a function from the business layer and // passing the object of the property layer which will carry the ID till the database. ds=objbs.GetAllStudentBsIDWise(objproperty); // What ever the data has been returned by the above function into the dataset //is being populate through the presentation laye. txtId.Text=ds.Tables[0].Rows[0][0].ToString(); txtFname.Text=ds.Tables[0].Rows[0][1].ToString(); txtAddress.Text=ds.Tables[0].Rows[0][2].ToString(); txtemail.Text=ds.Tables[0].Rows[0][3].ToString();
代码解释
- 上述代码定义了应用程序前端视图的基本设计,以及调用其他层的函数以便它们可以相互集成。
业务访问层 –
这是业务层的功能,它接受来自应用程序层的数据并将其传递到数据层。
- 业务逻辑充当客户端层和数据访问层之间的接口
- 所有业务逻辑——例如数据验证、计算、数据插入/修改都写在业务逻辑层下。
- 它使客户端和数据层之间的通信更快更容易
- 定义了完成任务所需的一个 proper 工作流活动。
// this is the function of the business layer which accepts the data from the //application layer and passes it to the data layer. public class clsStudentInfo { public DataSet GetAllStudentBsIDWise(clsStudent obj) { DataSet ds=new DataSet(); ds=objdt.getdata_dtIDWise(obj);// Calling of Data layer function return ds; } }
代码解释
代码使用了业务层的功能,该功能将接受应用程序层的数据并将其传递到数据层。业务层代码充当表示层和数据层中定义的函数以及反之亦然调用函数之间的中介。
数据访问层
这是数据层函数,它从业务层接收数据并在数据库中执行必要的操作。
// this is the datalayer function which is receiving the data from the business //layer and performing the required operation into the database public class clsStudentData // Data layer class { // object of property layer class public DataSet getdata_dtIDUise(clsStudent obj) { DataSet ds; string sql; sql="select * from student where Studentld=" +obj.id+ "order by Studentld; ds=new DataSet(); //this is the datalayer function which accepts the sql query and performs the //corresponding operation ds=objdt.ExecuteSql(sql); return ds; } }
代码解释
上述数据集层中定义的代码接受整个请求:由系统请求并在数据库中执行所需的操作。
2 层体系结构
它类似于客户端-服务器体系结构,其中客户端和服务器之间进行通信。
在这种软件体系结构中,表示层或用户界面层在客户端运行,而数据集层在服务器端执行和存储。
客户端和服务器之间没有业务逻辑层或中间层。
单层或 1 层体系结构
它是最简单的,因为它等同于在个人计算机上运行应用程序。应用程序运行所需的所有组件都位于单个应用程序或服务器上。
表示层、业务逻辑层和数据层都位于同一台机器上。
多层体系结构的优缺点
优点 | 缺点 |
---|---|
可扩展性 | 工作量增加 |
数据完整性 | 复杂性增加 |
可重用性 | |
分布式减少 | |
提高安全性 | |
提高可用性 |
因此,它是程序的一部分,它封装了现实世界的业务问题,并确定了如何更新、创建、存储或更改数据以完成整个任务。
N 层体系结构技巧和开发
考虑到软件专业人员必须全面控制体系结构的所有层,以下是关于 N 层体系结构的提示
- 尝试使用 soap XML 等技术将层与另一层尽可能解耦。
- 使用一些自动化工具在业务逻辑层和关系数据库层(数据层)之间生成映射。有助于模拟这些映射技术的工具有——.Net 的 Entity Framework 和 Hibernate 等。
- 在客户端表示层中,尽可能将所有客户端的通用代码放在单独的库中。这将最大化所有类型客户端的代码重用性。
- 可以在现有层中添加缓存层以提高性能。
摘要
N 层体系结构有助于将应用程序的所有组件(业务层、表示层和数据库层)集中管理。
在本地区域网络上有少量用户的应用程序可以受益于 N 层体系结构。
这种架构设计可以有效地在 Internet 上维护、扩展和部署应用程序。