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

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

这里我们以学生形式为例来理解这三个层次。它包含有关学生的信息,例如姓名、地址、电子邮件和照片。
用户界面层或表示层
表示层
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();
代码说明
- 上面的代码定义了应用程序前端视图的基本设计以及其他层函数的调用,以便它们可以相互集成。
业务访问层 –
这是业务层的功能,它接受来自应用层的数据并将其传递给数据层。
- 业务逻辑充当客户端层和数据访问层之间的接口
- 所有业务逻辑——例如数据验证、计算、数据插入/修改都写在业务逻辑层下。
- 它使客户端和数据层之间的通信更快更容易
- 定义完成任务所需的适当工作流活动。
// 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层 Archi质地
它就像客户端-服务器架构,其中通信发生在客户端和服务器之间。
在这种类型的软件架构中,表示层或用户界面层在客户端运行,而数据集层在服务器端执行和存储。
客户端和服务器之间没有业务逻辑层或直接层。
单层或 1 层 Archi质地
这是最简单的一种,因为它相当于在个人计算机上运行应用程序。应用程序运行所需的所有组件都位于单个应用程序或服务器上。
表示层、业务逻辑层和数据层都位于一台机器上。
多层的优点和缺点 Archi讲座
| 性能 | 缺点 |
|---|---|
| 可扩展性 | 增加努力 |
| 时间 Integrity | 复杂性增加 |
| 雷乌斯能力 | |
| 减少分配 | |
| 提高安全性 | |
| 提高可用性 |
因此,它是程序的一部分,用于加密现实世界的业务问题并确定如何更新、创建、存储或更改数据以完成完整的任务。
N 层 Archi建筑技巧与发展
考虑到软件专业人员必须对架构的所有层都有完全的控制,下面给出n层架构的技巧
- 尝试使用soap XML 等技术尽可能地将层与另一层解耦。
- 使用一些自动化工具来生成业务逻辑层和关系数据库层(数据层)之间的映射。可以帮助对这些映射技术进行建模的工具有:Entity Framework 和 Hibernate for .Net 等。
- 在客户端呈现层,尽可能将所有客户端的通用代码放在单独的库中。这将最大限度地提高所有类型客户端的代码可重用性。
- 可以将缓存层添加到现有层中以提高性能。
结语
N 层架构有助于在一个屋檐下管理应用程序的所有组件(业务层、表示层和数据库层)。
在局域网上使用少量用户的应用程序可以从 n 层体系结构中受益。
这种架构设计确保了在互联网上有效地维护、扩展和部署应用程序。

