种豆资源网

当前位置:首页 > 百科 > 百科综合 / 正文

三层架构

(2019-05-03 11:08:31) 百科综合
三层架构

三层架构

三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务套用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚低耦合”的思想。在软体体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或称为领域层)、表示层。

基本介绍

  • 中文名:三层架构
  • 外文名:3-tier architecture
  • 分类:界面层、业务逻辑层、数据访问层
  • 目的:“高内聚,低耦合”的思想
  • 优点:降低层与层之间的依赖 标準化
  • 缺点:系统架构複杂,不适合小型项目

概述

顾名思义,三层架构分为三层,分别是“数据访问层”、“业务逻辑层”、“表示层”。
数据访问层:数据访问层在作业过程中访问数据系统中的档案,实现对资料库中数据的读取保存操作。
表示层:主要功能是显示数据和接受传输用户的数据,可以在为网站的系统运行提供互动式操作界面,表示层的套用方式比较常见,例如Windows窗体和Web页面。
业务逻辑层:将用户的输入信息进行甄别处理,分别保存。建立新的数据存储方式,在存储过程中对数据进行读取,将“商业逻辑”描述代码进行包含。
三层架构软体系统为用户的数据传输、提取、储存创造了便利条件。在套用数据时,信息划分架构开发项目,对各层次之间的工作职责进行清晰规划,这样就降低了网站系统的维护风险。

三层原理

3个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理。
所谓三层体系结构,是在客户端与资料库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S套用才是三层体系结构,三层是指逻辑上的三层,即把这三个层放置到一台机器上。
三层架构三层架构
三层体系的应用程式将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与资料库进行互动,而是通过COM/DCOM通讯与中间层建立连线,再经由中间层与资料库进行互动。
三层架构中主要功能与业务逻辑一般要在业务逻辑层进行信息处理和实现,其中三层体系架构中的客户端和资料库要预设中间层,成为组建层。三层架构中的三层具有一定的逻辑性,即是将三层设定到同一个计算机系统中,把业务协定、合法校验以及数据访问等程式归置到中间层进行信息处理,一般客户端无法和资料库进行数据传输,主要是利用COM/DCOM通讯和中间层构建衔接通道,实现中间层与资料库的数据传输,进而实现客户端与是资料库的互动。

结构

表示层

表示层又称表现层UI,位于三层构架的最上层,与用户直接接触,主要是B/S信息系统中的Wed浏览页面。作为Wed浏览页面,表示层的主要功能是实现系统数据的传入与输出,在此过程中不需要藉助逻辑判断操作就可以将数据传送到BLL系统中进行数据处理,处理后会将处理结果反馈到表示层中。换句话说,表示层就是实现用户界面功能,将用户的需求传达和反馈,并用BLL或者是Models进行调试,保证用户体验。

业务逻辑层

业务逻辑层BLL的功能是对具体问题进行逻辑判断与执行操作,接收到表现层UI的用户指令后,会连线数据访问层DAL,访问层在三层构架中位于表示层与数据层中间位置,同时也是表示层与数据层的桥樑,实现三层之间的数据连线和指令传达,可以对接收数据进行逻辑处理,实现数据的修改、获取、删除等功能,并将处理结果反馈到表示层UI中,实现软体功能。

数据访问层

数据访问层DAL是资料库的主要操控系统,实现数据的增加、删除、修改、查询等操作,并将操作结果反馈到业务逻辑层BLL。在实际运行的过程中,数据访问层没有逻辑判断能力,为了实现代码编写的严谨性,提高代码阅读程度,一般软体开发人员会在该层中编写DataAccessCommon,保证数据访问层DAL数据处理功能。

各层作用

1、数据访问层:主要是对非原始数据(资料库或者文本档案等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对资料库的操作,而不是数据,具体为业务逻辑层或表示层提供数据服务。
2、业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。
3、界面层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。

规则

三层结构并不是普通的DAL,BLL,WebUI三个模组,三层程式有一些需要约定遵守的规则:
1、最核心的模组规则,表现层只是外壳作用,不能包含任何BizLogic的处理过程。
2、各层次模组设计时应该从业务逻辑层出发,而不是开始于表现层.。业务逻辑层在API上应该实现所有BizLogic,以面向对象的方式。
3、不论数据层是一个简单的SqlHelper,还是带有Mapping的Classes,应该保证其与抽象的系统层无关。
4、不管使用COM+(EnterpriseService),还是Remoting,还是WebService之类的远程对象技术,不管部署是否在伺服器上,在起码在设计时必须要考虑多台伺服器通过负载均衡作集群。
综上,考虑一个项目是否符合套用三层或多层设计时,必须要考虑是否真正符合项目的需求。

优缺点

优点

1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标準化;
5、利于各层逻辑的复用;
6、结构更加的明确;
7、在后期维护的时候,极大地降低了维护成本和维护时间;
8、避免了表示层直接访问数据访问层,表示层只和业务逻辑层有联繫,提高了数据安全性。
9、有利于系统的分散开发,每一个层可以由不同的人员来开发,只要遵循接口标準,利用相同的对象模型实体类就可以了,这样就可以大大提高系统的开发速度。
10、方便系统的移植,如果要把一个C/S的系统变成B/S系统,只要修改三层架构的表示层就可以了。业务逻辑层和数据访问层几乎不用修改就可以轻鬆的把系统移植到网路上。
11、项目结构更清楚,分工更明确,有利于后期的维护和升级。

缺点

1、降低了系统的性能。这是不言而喻的。如果不採用分层式结构,很多业务可以直接造访资料库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
3、增加了开发成本。

套用

(1)套用伺服器。
伺服器一般包括有连线与无连线形式,无连线在最底层要设定UDP/IP协定实现伺服器通信功能,同时在实际使用的过程中,由于客户机无法保证可靠的传输渠道,使得客户机向伺服器提交请求时,很容易造成请求的丢失、延迟以及传递失序等传输问题,进而降低通信质量。UDP的可靠性很低,在实际运行中UDP要依託于下层IP网路进行交付分组,无法引入检验程式,而IP网路还要由实际硬体网路或者是相关网关决定其工作质量。因此,从这一层面上看,下层网路的好坏直接关係到UDP工作。在进行开发有连线伺服器的过程中,要利用TCP/IP通信协定,利用网际网路创建良好的通信环境,进而提高通信数据的真实性和可靠性。TCP/IP通信协定可以对数据信息进行验证与校对,保证数据信息的完整性。同时在实际运行中,可以通过数据的序列号排序保证数据信息的有序到达,防止出现信息重複分组的情况。另外,这种通信协定可以对流量进行有效控制,确保传送信息速度在接收方的承受範围以内,通过INTERNET,实现伺服器的面向连线。
三层架构三层架构
(2)套用客户端。
在三层构架系统中,客户端是使用者的主要功能体验区域,相比于伺服器而言非常简单。一方面,在三层构架运行的过程中,客户机软体要和各个伺服器进行相互通信,不需要过于重视并发性处理。另一方面,一般客户机软体可以仿照常规程式进行指令执行,不需要进行外加保护,依託于作业系统进行强迫性保护。但与此同时对界面具有极高的要求,系统分析的过程中就要进行专门的界面设计,同时要和客户进行及时沟通,掌握客户的实际需求,实现高效的信息反馈与交流沟通,进而保证信息系统软体界面设计的质量和效率。
(3)数据伺服器。
在进行数据伺服器选择的过程中,要根据信息系统平台要求和用户期望要求,同时对应各个伺服器的特点进行使用与选择。一般情况下出于对系统性能的考虑,会选择SQLSERVER数据伺服器,设计阶段中要通过Proactive等有效措施对系统资料库的实际使用性能进行不断地最佳化与完善。同时管理人员要和程式设计人员进行有效的沟通与协作,明确信息系统软体的性能目标,设定性能期望值,构建系统资源组合体系,满足用户的实际需求。
(4)资料库和套用伺服器的连线。
在基于三层构架的信息系统开发中,套用伺服器要利用SQL语言进行连线资料库伺服器,其连线方法包括DB-Library、DAO以及OLE等方式,其中DB-Library是最为常见的连线方式,作为SQLSERVER的重要接口层,具有极强的访问信息效率和访问速度。这主要是源于DB-Library的语言开发能力,直接省去DAO以及OLE等连线方式中抽象层的调用,节省了信息访问时间。同时,三层构架适用于使用诸多开发语言的信息系统开发,不是.NET的专利,也不是专门用在资料库上的技术,而是一种更加普适的架构设计理念,除了数据、逻辑、界面等层次之外,在实际套用中还会根据需要多出传递数据的层、接口层等等。在结合DB-Library资料库连线后,设定NTWDBLIB.LIB组建,构建CDBConn实体类库体系,实现资料库与套用伺服器的连线。因此,信息系统软体架构可以为系统开发创造出良好的分散式计算环境,其中逻辑层可以实现多个机器的同时运行,通过计算机网路计算能力,强化系统各个功能板块的精準性和复用性,进而有效减少了信息系统软体开发的时间和周期,保证信息系统的安全性与拓展性,实现系统功能的最大化实现。

标 签

搜索
随机推荐

Powered By 种豆资源网||