N 层(多层)、3 层、2 层 Archi以示例为例

⚡ 智能摘要

N层架构,也称为多层架构,将应用程序分布在三个或更多个独立的层上,例如表示层、业务逻辑层和数据层。这种模型提高了企业级客户端-服务器应用程序的可扩展性、安全性和可重用性。

  • ????️ 定义: N层应用程序分布在分布式网络中的三台或更多台独立计算机上。
  • 🧱 三个核心层: 表示层(用户界面)、业务逻辑层和数据库层将职责清晰地分离。
  • 🔢 等级变体: 常见的模型有单层、双层和三层,其中三层模型应用最为广泛。
  • 🌐 实际用途: 像IRCTC、MakeMyTrip和这样的网站 Amazon 依赖于这种架构。
  • 主要优点: 可扩展性、数据完整性、可重用性、更高的安全性和可用性。
  • ⚠️ 权衡: 层数越多,开发工作量越大,系统整体复杂性也越高。

N 层 Archi质地

什么是N层?

An N 层应用程序 程序是分布在分布式网络中的三台或更多台独立计算机之间的程序。

n 层最常见的形式是 3 层应用程序,它分为三类。

  • 用户计算机中的用户界面编程
  • 业务逻辑在更集中的计算机中,以及
  • 管理数据库的计算机中所需的数据。

该架构模型为软件开发人员提供了一种创建具有最大灵活性的可重用应用程序/系统的方法。

In N 层,“N” 指的是所使用的层级或层数,例如—— 2层、3层或4层等。它也被称为“多层 Archi质地“。

n层架构 是一种经过业界验证的软件架构模型。它通过提供可扩展性、安全性、容错性、可重用性和可维护性解决方案,适用于支持企业级客户端-服务器应用程序。它有助于开发人员创建灵活且可重用的应用程序。

N 层 Archi质地

这里描述了 n 层系统的图形表示——表示层、应用程序层和数据库层。

N 层 Archi质地
N 级 Archi结构图

根据需求,这三层可以进一步细分为不同的子层。

一些采用这种架构的热门网站包括:

  • MakeMyTrip.com
  • 销售队伍企业应用
  • 印度铁路 – IRCTC
  • Amazon.com 等等

记住以下一些常用术语,以便更清楚地理解概念:

  • 分布式网络: 它是一种网络架构,其中位于网络计算机上的各个组件仅通过传递消息来协调和通信。它由位于不同节点的多个系统组成,但对用户而言却像一个单一的系统。
    • 它提供了一个单一的数据通信网络,可以由不同的网络单独管理。
    • 分布式网络的一个例子——不同的客户端在一端通过局域网架构连接,在另一端则连接到高速交换机以及包含服务节点的服务器机架。
  • 客户服务器 Archi結構: 它是一种架构模型,其中客户端(一个程序)向服务器(另一个程序)请求服务。 它是一种通过互联网或企业内部网提供的请求-响应服务。在这种模式下, 客户 将作为一组程序/代码,通过网络执行一组操作。尽管 服务器另一方面,是一组另一个程序,它根据请求将结果集发送到客户端系统。
    • 在这种情况下,客户端计算机为最终用户提供接口,以便向服务器请求服务或资源;另一方面,服务器处理请求并将结果显示给最终用户。
    • 客户端-服务器模型的一个例子是ATM机。银行作为服务器,负责处理庞大客户数据库中的应用程序;而ATM机则作为客户端,拥有用户界面并执行一些简单的应用程序处理。
  • 平台: 在计算机科学或软件行业中,平台是指应用程序可以运行的系统。它由硬件和软件组合而成,其中包含处理器/微处理器执行特定操作的内置指令。
    • 简单来说,平台是一个系统或基础,任何应用程序都可以在其上运行和执行,以获得特定任务。
    • 平台示例 – 一台装载了 Windows 2000 或 Mac OS X 作为两个不同平台的例子。
  • 数据库: 它是以有组织的方式收集的信息,以便可以轻松访问、管理和更新。
    • 数据库示例 – MySQL, SQL 服务器,以及 Oracle Database 以下是一些常见的数据库。

N 层的类型 Archi讲座

有不同类型的 N-Tier Archi结构,如 3层 Archi结构,2 层 Archi结构和单层 Archi结构。

首先,我们将看到三层 Archi结构,这非常重要。

3层 Archi质地

看看下面的图,你就可以轻松识别 三层架构 具有三个不同的层。

  • 表示层
  • 业务逻辑层
  • 数据库层
3层 Archi结构图
3层 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();

Code 说明

  • 上述代码定义了应用程序前端视图的基本设计,以及调用其他层的功能,以便它们可以相互集成。

业务访问层 –

这是业务层的功能,它接受来自应用层的数据并将其传递给数据层。

  • 业务逻辑充当客户端层和数据访问层之间的接口。
  • 所有业务逻辑——如数据验证、计算、数据插入/修改——都在业务逻辑层下编写。
  • 它使客户端和数据层之间的通信更加快捷方便。
  • 定义完成任务所需的适当工作流活动。
// 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层架构的一些技巧:

  1. 尽量使用 SOAP XML 等技术将各层彼此解耦。
  2. 使用一些自动化工具生成地图ping 业务逻辑层和关系数据库层(数据层)之间。可以帮助构建这些映射关系的工具。ping 相关技术包括 Entity Framework 和 .Net 的 Hibernate 等。
  3. 在客户端表示层,尽可能将所有客户端的通用代码放在一个单独的库中。这将最大限度地提高所有类型客户端的代码重用性。
  4. 可以将缓存层添加到现有层中以提高性能。

常见问题

层是指代码的逻辑分离,例如表示层或业务逻辑层。层级是指这些层在物理上分离,分别运行在不同的机器上。多个层可以运行在同一层级上,也可以每个层运行在自己的层级上。

不。MVC 是一种用于组织单个应用程序内代码的设计模式,而三层架构则在物理上将表示层、逻辑层和数据层分离。MVC 组件可以自由交互,而三层架构的各层之间则严格按照自顶向下的顺序进行通信。

常见选择包括 .NET, Java (Spring),以及用于业务逻辑的 Node.js,HTML/Java用于演示的脚本框架,以及诸如以下的数据库: MySQLSQL Server 或 Oracle 数据层方面,像 Entity Framework 和 Hibernate 这样的 ORM 框架负责连接各个层。

人工智能通常被添加到业务逻辑层或作为单独的服务层。它为推荐、欺诈检测和搜索等功能提供支持,而表示层和数据层保持不变。ping 该架构模块化且易于维护。

是的。AI驱动的监控可以预测流量高峰,并独立地自动扩展每个层级。它还可以平衡负载、检测瓶颈、优化数据库查询等等。ping 大型客户端-服务器应用程序在不断变化的需求下仍能保持响应。

总结一下这篇文章: