最近在学习三层结构,通过上网找各种资料,初步学习了一些三层的知识跟大家分享一下。先跟大家介绍一下三层的来源,为什么叫三层?
在现代的社会的软件开发体系中结构可以简单的概括是N层体系结构,N大于等于1,他们的开发方式不同:
换句话说:单机体系(N=1)、Client/Server结构体系(N=2)、多层体系结构(N>2)。下面我们就对这三种体系结构进行简单的介绍和比较:
单机体系:
单机体系,一般情况下是针对某一种单一的应用,如字典软件、翻译软件等等,这种软件适用于单机状态。这种开发方式不适用于综合管理系统的开发。
C/S结构:
C/S(Client/Server)结构,即客户机和服务器结构。C/S结构是在局域网上发展起来的,它具有数据集中管理的能力,在出现之初确实解决了很多计算机发展的难题,同时随着4GL语言的发展,用户的界面也逐渐丰富起来,在Client端的事物处理能力也使整个系统的性能得到全面的提高,并使管理信息系统得到快速的发展。
我们根据两层结构体系的概念来分解C/S结构的话,可以将他分为表现层(也叫表达层)和数据层。简单说:client直接访问DBserver为两层结构。数据层提供数据存放的载体,而表现层则将数据层中数据取出,向用户进行显示。
在两层体系结构中,表现层对数据库进行直接操作,且大部分的商业处理逻辑(Business Logic,数据之间的关系规则)也在表现层中实现。
两层结构在应用软件上的模型如图:
三层体系结构:
三层体系结构是N层体系结构的典型,所谓的三层体系结构就是将原来在两层体系结构中的商业逻辑部分从数据层和表现层中提炼出来,形成中间层,也叫组件层。简单的地说: client通过中间件等应用服务器访问DBserver就是三层结构。 所以三层就是:显示层UI、商业逻辑层BLL(Business Logic Layer)、数据访问层DAL(Data Access Layer)。
各层的概念:
1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。
三层结构在应用软件上的模型如图:
当大家看到这幅图时,大家对三层一定不要出现对概念的错误理解,其实三层的划分分为物理上和逻辑上划分:
物理:显示层、业务层、数据层。
逻辑:UI、BLL+DAL、DB。
物理和逻辑是不同的,我们要以分为两的看问题。我们讨论的是逻辑上的三层结构:UI、BLL+DAL、DB。有可能在物理上BLL和DAL都运行在应用服务器上,而不是在数据库服务器上。
各层的作用:
1:数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务.
2:业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理。
3:表示层:主要提供与客户的交互功能,向用户展示特定业务数据和采集用户的输入信息和操作。
C/S 模式的优点和缺点
上面简单的介绍了C/S结构和三层体系结构,为了更好的让您了解两者的区别,我们将两者进行一些比较。
C/S 模式的优点:
1、由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。
2、操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。
3、C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。
C/S结构的缺点:
1、缺乏有效的集权控制
在众多的C/S软件中我们不难看出,所有的构件不能够在一个地点(如一台机器)进行统一的管理,而不得不将他们分化在各个Client的应用中,使得维护和安全保密均很困难。
2、缺乏安全性
在分散的计算机系统中,控制信息的访问安全是非常困难的,由于客户端经常需要对一些敏感的数据进行分析导致安全漏洞很容易发生。
3、客户端工作量重
当将一个应用中的所有的商业逻辑全部在各个客户端来实现的时候,仅仅是使用桌面电脑的客户端资源将发生不堪负载的情况。
4、软件的重用性差
由于C/S结构下的应用软件一般均是根据操作系统进行定制,且开发工具也是有一定的限定,一旦需要改变某一个要素的话,很可能只能重做。
三层结构的优点和缺点:
三层结构的优点:
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
6、结构更加的明确
7、在后期维护的时候,极大地降低了维护成本和维护时间
三层结构的缺点:
1、降低了系统的性能。
这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。
这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
3、增加了开发成本。
由于刚开始学习三层架构的知识,对于三层结构的理解还有很多欠缺的地方,欢迎大家来拍砖。
相关推荐
本文件共有3个分压缩包...亮剑.NET_.NET深入体验与实战精要(高清晰版电子书).part1.rar 亮剑.NET_.NET深入体验与实战精要(高清晰版电子书).part2.rar 亮剑.NET_.NET深入体验与实战精要(高清晰版电子书).part3.rar
14.1.2 趣味理解:三层架构与养猪 496 14.2 为什么要用三层架构 497 14.3 三层架构项目开发示例 500 14.3.1 数据库设计 500 14.3.2 创建整体解决方案 501 14.3.3 业务实体Model的实现 502 14.3.4 数据访问层的实现 ...
《亮剑.NET:.NET深入体验与实战精要》是由知名IT专家李天平撰写的一本深入探讨.NET技术的专业书籍。这本书旨在帮助开发者们更好地理解.NET框架,提升.NET开发技能,并通过实战案例来加强理论知识的理解。源码压缩包...
第14章 三层架构项目开发 第15章 大型网站的性能优化与安全 第16章 系统设计的原则和技巧 第3篇 项目实战解析 第17章 权限角色管理项目解析 第18章 单点登录系统的设计与实现 第19章 常用.net开发...
《李天平 亮剑 .NET深入体验与实战 数据库》是一本专注于.NET技术与数据库实战结合的专业书籍。作者李天平,通过“亮剑”这一主题,寓意在技术领域中,开发者应具备敢于挑战、精益求精的精神。这本书的焦点在于深入...
亮剑.NET深入体验与实战精要,pdf文档,共分为23个部分,要完全了才能解压。
亮剑.NET深入体验与实战精要,整版的PDF,寻找已久,分享给大家。下载后是一个txt文档,文档里有文件的下载路径。
ADO.NET类与断线数据集DataSet剖析,ADO.NET与ASP.NET网页整合应用实例,多层式架构组成探讨,业务逻辑层类设计,类图表的建立与设计说明,ObjectDataSource数据控制项类绑定设计,主版页、HTML元素、CSS与表示层...
全书内容共分14章,分别介绍了ASP.NET基础、C#语言基础、ASP.NET控件、ADO.NET和数据绑定控件、ASP.NET基本对象、SQL Server 2005基础、Web网站设计技术等基本知识,以及电子商务网站、学生公寓管理系统、博客系统、...
《亮剑.NET SharePoint Server 2007开发实战》是一本深入探讨Microsoft SharePoint Server 2007开发的专业书籍,适合于对.NET平台有基础了解并希望深入学习SharePoint开发的IT从业者。这本书全面覆盖了SharePoint ...
权威珍品 一线开发专家携数载功力聚首亮剑.NET 台湾畅销书作者再添力作 商业级数据库整站通关学 本书写给具备入门基础的ASP.NET网站开发设计人员, 学习如何透过多层式的架构设计, 从ADO.NET的开始,建立动态...
本书共分为8章,详细讲解了sharepoint上常见的开发任务,讲述了各种开发场景下需要了解的知识,并提供了丰富的实例。. 本书第1章为基础知识,讲述sharepoint的基本概念,基本的对象模型,代码编写注意事项,并讲解...
本文件共有3个分压缩包...亮剑.NET_.NET深入体验与实战精要(高清晰版电子书).part1.rar 亮剑.NET_.NET深入体验与实战精要(高清晰版电子书).part2.rar 亮剑.NET_.NET深入体验与实战精要(高清晰版电子书).part3.rar
根据提供的信息,《亮剑.NET_.NET深入体验与实战精要》这本书主要面向.NET技术的开发者,旨在通过实际案例和技术解析帮助读者解决开发过程中遇到的问题,并掌握真正的商业项目开发能力。虽然给定的部分内容并未提供...
李天平 亮剑 .net 深入体验 实战精要 源码 光盘
亮剑ASP.NET项目开发案例导航-part01(共三分卷)
- 分离关注点:项目可能采用三层架构(表现层、业务逻辑层、数据访问层),将用户界面、业务规则和数据访问分开,提高代码的可维护性和可扩展性。 - 服务接口:业务逻辑层可能通过接口与表现层交互,实现松耦合。 ...
本文件共有3个分压缩包...亮剑.NET_.NET深入体验与实战精要(高清晰版电子书).part1.rar 亮剑.NET_.NET深入体验与实战精要(高清晰版电子书).part2.rar 亮剑.NET_.NET深入体验与实战精要(高清晰版电子书).part3.rar
亮剑.NET:图解ASP.NET网站开发实战 本书由浅入深地讲解了asp.net结合sql server进行网络编程的知识。全书内容共分14章,分别介绍了asp.net基础、c#语言基础、asp.net控件、ado.net和数据绑定控件、asp.net基本对象...
《亮剑.NET:.NET深入体验与实战精要》作者身为从事.NET一线开发的资深开发专家,常年耕耘技术博客,惠及无数.NET新知。此次将长期的思考、感悟,多年的系统开发、设计和团队管理经验,以及深入分析众多项目实战的...