概述

顾名思义,三层架构分为三层,分别是“数据访问层”、“业务逻辑层”、“表示层”。

数据访问层:数据访问层在作业过程中访问数据系统中的文件, 实现对数据库中数据的读取保存操作

表示层:主要功能是 显示数据和接受传输用户的数据,可以在为网站的系统运行 提供交互式操作界面,表示层的应用方式比较常见,例如 Windows窗体和Web页面

业务逻辑层: 将用户的输入信息进行甄别处理,分别保存。 建立新的数据存储方式,在存储过程中对数据进行读取, 将“商业逻辑”描述代码进行包含

三层架构软件系统 为用户的数据传输、提取、储存创造了便利条件。在应用数据时,信息划分架构开发项目,对各层次之间的 工作职责进行清晰规划, 这样就降低了网站系统的维护风险

三层原理

3个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理。

所谓三层体系结构, 是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即把这三个层放置到一台机器上。

三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是 通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互

三层架构中主要功能与业务逻辑一般要在业务逻辑层进行信息处理和实现,其中三层体系架构中的客户端和数据库要预设中间层,成为组建层。三层架构中的三层具有一定的逻辑性,即是将三层设置到同一个计算机系统中,把业务协议、合法校验以及数据访问等程序归置到中间层进行信息处理,一般客户端无法和数据库进行数据传输,主要是利用COM/DCOM通讯和中间层构建衔接通道,实现中间层与数据库的数据传输,进而实现客户端与是数据库的交互。

结构

表示层

表示层又称表现层UI,位于三层构架的最上层,与用户直接接触,主要是B/S信息系统中的Web浏览页面。作为Web浏览页面,表示层的主要功能是实现系统数据的传入与输出,在此过程中不需要借助逻辑判断操作就可以将数据传送到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实体类库体系,实现数据库与应用服务器的连接。因此,信息系统软件架构可 以为系统开发创造出良好的分布式计算环境,其中 逻辑层可以 实现多个机器的同时运行, 通过计算机网络计算能力, 强化系统各个功能板块的精准性和复用性, 进而有效减少了信息系统软件开发的时间和周期,保证信息系统的 安全性与拓展性,实现系统功能的最大化实现。

架构-三层架构:三层架构相关推荐

  1. .NET完全手动搭建三层B/S架构

    简介:三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(WebUI).业务逻辑层(BusinessLogicLayer).数据访问层(DataAc ...

  2. 三层架构:软件设计架构

    三层架构:软件设计架构 1. 界面层(表示层):用户看的得界面.用户可以通过界面上的组件和服务器进行交互 2. 业务逻辑层:处理业务逻辑的. 3. 数据访问层:操作数据存储文件.

  3. java三层 开源_java 山寨qq 聊天工具(基于mvc三层架构,附 mvc架构模式pdf说明文档)支持开源...

    [实例简介] java 山寨qq 聊天工具(基于mvc三层架构,附 mvc架构模式pdf说明文档)支持开源 [实例截图] [核心代码] java山寨qq聊天工具(基于mvc三层架构,附mvc架构模式p ...

  4. 项目架构之传统三层架构和领域模型三层架构

    一.架构之传统三层架构 传统三层架构是一种软件架构,是一种典型的.基于贫血模型的.面向过程的JavaWeb分层方式.该架构分为以下三个层次: 数据访问层(DAL - Data Access Layer ...

  5. 计算机网络汇聚层,31. 接入层 汇聚层 核心层 三层典型网络架构

    # 网络 网络.互联网络.企业级经典网络拓扑和家庭网络 # 互联网服务提供商 基于ISP和IXP的多层结构 # OSI 参考模型 程序员    :应用层.表示层.会话层.传输层 网络工程师:网络层和数 ...

  6. 网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络

    作为一个合格的运维人员,一定要熟悉掌握OSI七层网络和TCP/IP五层网络结构知识. 废话不多说!下面就逐一展开对这两个网络架构知识的说明: 一.OSI七层网络协议 OSI是Open System I ...

  7. OSI七层网络、TCP/IP五层网络架构、二层/三层网络

    一.OSI七层网络协议 OSI是Open System Interconnect的缩写,意为开放式系统互联. OSI参考模型各个层次的划分遵循下列原则: 1)根据不同层次的抽象分层 2)每层应当有一个 ...

  8. JavaEE架构之传统三层架构,集群架构,分布式架构,微服务架构

    javaEE架构 1.传统三层架构(all in one项目) 传统三层架构大致可以分为表现层,业务层和持久层(数据访问层).其中表现层负责接受请求和转发请求.业务层负责处理请求(注:事务管理,日志记 ...

  9. 如鹏网.Net三层架构第一章三层基础

    三层架构: 1.通常意义上的三层架构就是将整个业务应用划分为:表现层.业务逻辑层.数据访问层.区分层次的目的即为了"高内聚低耦合"的思想. 2.该课程中通过讲解餐饮管理系统来让大家 ...

  10. JavaWeb三层架构的理解/三层架构的优缺点/三层架构与MVC的区别

    1.三层架构 我们的开发架构一般都是基于两种形式,一种是C/S架构,也就是客户端/服务器,另一种是B/S架构,也就是浏览器服务器.在JavaEE开发中,几乎全都是基于B/S架构的开发.那么在B/S架构 ...

最新文章

  1. Spring Boot Spring MVC 异常处理的N种方法
  2. 【Paper】2019_Distributed Cooperative Control of a High-speed Train
  3. 【自译】八步成为数据科学家
  4. Memcached缓存实例
  5. Go 语言能取代 Java,成为下一个 10 年的王者吗?
  6. linux-shell命令之mount【挂载命令】
  7. 关键字驱动小例子_example2
  8. java---连接池的学习
  9. win7安装python
  10. python与jupyter关系,Ipython,jupyter和kernels是什么关系?
  11. latex使用记录3
  12. 学习笔记--Python多进程
  13. 电脑关机程序(源码)
  14. Unity3D Terrain 变成粉色(紫色/洋红色)解决方案!
  15. 数字图像处理(2): 颜色空间/模型—— RGB, CMY/CMYK, HSI, HSV, YUV
  16. 短期工作经历到底要不要写到简历上?
  17. 区块链需要c语言和linux嘛,区块链技术如何运作?使用什么开发语言?
  18. oracle 11g从DBF文件恢复数据
  19. ROS基础(13)——机器人建模之运动仿真
  20. ObjectARX类库简介

热门文章

  1. 区块链的想象,解决贫富差距
  2. 作为“混合云第一股” 青云科技上市背后的逻辑
  3. (一)DDR 基础介绍——(演进、构成、存储原理)
  4. nginx 报错502 bad Gateway
  5. 模型机设计计算机组成原理报告,计算机组成原理 实验报告四 基本模型机设计与实现...
  6. springboot使用jasper实现报表demo
  7. 在学校开水果店要考虑什么因素,想开水果店应该考虑哪些问题
  8. 哲理故事与管理之道(15)-管理者眼中的能力和待遇
  9. 【SICP练习】149 练习4.5
  10. 人工智能里的数学修炼 | 隐马尔可夫模型 : 维特比(Viterbi)算法解码隐藏状态序列