软件工程快速入门教程8- 多层架构
什么是N-Tier?
N层应用程序是分布在分布式网络中的三个或更多个单独计算机之间的程序。
最常见的n层形式是3层应用程序,它分为三类。
- 用户计算机中的用户界面编程
- 更集中的计算机中的业务逻辑,和
- 管理数据库的计算机中的必需数据。
此体系结构模型为软件开发人员提供了最大灵活性的可重用应用程序/系统。
在N层中,“N”指的是正在使用的层数或层数,如 - 2层,3层或4层等 。 它也被称为“ 多层 架构”。
n层架构是经过行业验证的软件架构模型。 它通过提供可伸缩性,安全性,容错性,可重用性和可维护性的解决方案,适合支持企业级客户端 - 服务器应用程序。 它可以帮助开发人员创建灵活且可重用的应用程序。
参考资料
- 教程目录
- 本文涉及的python测试开发库 谢谢点赞!
- 本文相关海量书籍下载
N层架构
此处描述了n层系统的图形表示 - 表示层,应用程序层和数据库层。
image.png
根据要求,这三层可以进一步细分为不同的子层。
一些应用这种架构的热门网站是
- MakeMyTrip.com
- Sales Force企业应用程序
- 印度铁路 - IRCTC
- 亚马逊等
要记住一些常用术语,以便更清楚地理解概念。
-
分布式网络:它是一种网络体系结构,位于网络计算机上的组件仅通过传递消息来协调和传递其操作。 它是位于不同节点的多个系统的集合,但在用户看来是单个系统。
- 它提供单个数据通信网络,可以由不同的网络单独管理。
- 分布式网络的一个示例 - 其中不同的客户端在一侧的LAN架构内连接,另一侧连接到高速交换机以及包含服务节点的服务器机架。
-
客户端 - 服务器体系结构:它是一种体系结构模型,其中客户端(一个程序)从服务器(另一个程序)请求服务, 即它是通过因特网或通过内联网提供的请求 - 响应服务。
在此模型中, 客户端将作为一组程序/代码,通过网络执行一组操作。 另一方面, Server是一组另一个程序,它根据请求将结果集发送到客户端系统。
- 在此,客户端计算机向终端用户提供从服务器请求服务或资源的接口,另一方面服务器然后处理该请求并将结果显示给最终用户。
- 客户端 - 服务器模型的一个例子 - ATM机。 银行是用于在大客户数据库内处理应用程序的服务器,并且ATM机器是具有用户界面的客户端,具有一些简单的应用程序处理。
-
平台:在计算机科学或软件行业中,平台是应用程序可以运行的系统。 它由硬件和软件组合而成,具有内置指令,供处理器/微处理器执行特定操作。
- 换句话说,平台是一个系统或基础,任何应用程序都可以运行和执行以获得特定任务。
- 平台示例 - 装有ubuntu或Mac OS X的个人计算机,作为2个不同平台的示例。
-
数据库:它是一种有组织的信息集合,因此可以轻松访问,管理和更新。
- 数据库的例子 - mongoDB, MySQL,postgresql和Oracle数据库是一些常见的Db。
N层架构的类型
有不同类型的N层体系结构,如3层体系结构,2层体系结构和1层体系结构。
首先,我们将看到3层架构,这非常重要。
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();
业务访问层 -
这是业务层的功能,它接受来自应用层的数据并将其传递给数据层。
- 业务逻辑充当客户端层和数据访问层之间的接口
- 所有业务逻辑 - 如数据验证,计算,数据插入/修改都是在业务逻- 辑层下编写的。
- 它使客户端和数据层之间的通信更快捷,更容易
- 定义完成任务所需的正确工作流活动。
// 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;
}
}
单层或单层架构:
它是最简单的一个,因为它等同于在个人计算机上运行应用程序。 运行应用程序所需的所有组件都在单个应用程序或服务器上。
表示层,业务逻辑层和数据层都位于一台机器上。
多层体系结构的优缺点
好处
- 可扩展性
- 数据的完整性
- 可重用性
- 更容易分布式
- 提高安全性
- 提高可用性
缺点
- 增加工作量
- 增加复杂性
N层架构技巧与发展
考虑到软件专业人员必须完全控制架构的所有层,有关n层架构的提示如下
- 尝试使用soap XML等技术尽可能地将图层与其他图层分离。
- 使用一些自动化工具生成业务逻辑层和关系数据库层(数据层)之间的映射。 可以帮助建模这些映射技术的工具是 - Entity Framework和Hibernate for .Net等。
- 在客户端演示者层中,尽可能将所有客户端的公共代码放在单独的库中。 这将最大化所有类型客户端的代码可重用性。
- 可以将缓存层添加到现有层中以加速性能。
小结:
- N层体系结构有助于在一个屋檐下管理应用程序的所有组件(业务层,表示层和数据库层)。
-在局域网上使用少量用户的应用程序可以受益于n层架构。
-这种架构设计确定了在因特网上有效地维护,扩展和部署应用程序。