2010-09-26 21:50:49| 分类: 知识 | 标签: |举报 |字号大中小 订阅 数据库
三层架构(3-tier application) 一般意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合"的思想。
1、表现层(UI):通俗讲就是展示给用户的界面,即用户在使用一个系统的时候他的所见所得。
2、业务逻辑层(BLL):针对具体问题的操做,也能够说是对数据层的操做,对数据业务逻辑处理。
3、数据访问层(DAL):该层所作事务直接操做数据库,针对数据的增添、删除、修改、更新、查找等。
注:(内聚:一个模块内各个元素彼此结合的紧密程度;耦合:一个软件结构内不一样模块之间互连程度的度量)安全
优缺点
优势:
一、开发人员能够只关注整个结构中的其中某一层;
二、能够很容易的用新的实现来替换原有层次的实现;
三、能够下降层与层之间的依赖;
四、有利于标准化;
五、利于各层逻辑的复用。
六、扩展性强。不一样层负责不一样的层面,如PetShop可通过简单的配置实现Sqlserver和oracle之间的转换,固然写好了也能够实现B/S与C/S之间的转换
七、安全性高。用户端只能经过逻辑层来访问数据层,减小了入口点,把不少危险的系统功能都屏蔽了。
八、项目结构更清楚,分工更明确,有利于后期的维护和升级
缺点:
一、下降了系统的性能。这是不言而喻的。若是不采用分层式结构,不少业务能够直接造访数据库,以此获取相应的数据,现在却必须经过中间层来完成。
二、有时会致使级联的修改。这种修改尤为体如今自上而下的方向。若是在表示层中须要增长一个功能,为保证其设计符合分层式结构,可能须要在相应的业务逻辑层和数据访问层中都增长相应的代码
三、增长了代码量,增长了工做量服务器
三层架构是:网络
一:界面层
界面层提供给用户一个视觉上的界面,经过界面层,用户输入数据、获取数据。界面层同时也提供必定的安全性,确保用户不用看到没必要要的机密信息。架构
二:逻辑层oracle
逻辑层是界面层和数据层的桥梁,它响应界面层的用户请求,执行任务并从数据层抓取数据,并将必要的数据传送给界面层。app
三:数据层
数据层定义、维护数据的完整性、安全性,它响应逻辑层的请求,访问数据。这一层一般由大型的数据库服务器实现,如Oracle 、Sybase、MS SQl Server等。数据库设计
------分布式
从开发角度和应用角度来看,三层架构比双层或单层结构都有更大的优点。三层结构适合群体开发,每人能够有不一样的分工,协同工做使效率倍增。开发双层或单层应用时,每一个开发人员都应对系统有较深的理解,能力要求很高,开发三层应用时,则能够结合多方面的人才,只需少数人对系统全面了解,从必定程度工下降了开发的难度。
三层架构属于瘦客户的模式,用户端只需一个较小的硬盘、较小的内存、较慢的CPU就能够得到不错的性能。相比之下,单层或胖客户对面器的要求过高。
三层架构的另外一个优势在于能够更好的支持分布式计算环境。逻辑层的应用程序能够有多个机器上运行,充分利用网络的计算功能。分布式计算的潜力巨大,远比升级CPU有效。
三层架构的最大优势是它的安全性。用户端只能经过逻辑层来访问数据层,减小了入口点,把不少危险的系统功能都屏蔽了。
另外三层架构还能够支持以下功能:Remote Access(远程访问资料),例如可透过Internet存取远程数据库;High Performance(提高运算效率)解决集中式运算(Centralize)及主从式架构(Client-Server)中,数据库主机的运算负担,下降数据库主机的Connection Load,并可藉由增长App Server处理众多的数据处理要求,这一点跟前面讲到的分布式计算提升运算能力是一个道理;Client端发出Request(工做要求)后,即可离线,交由App Server和DataBase Server共同把工做完成,减小Client端的等待时间;这个功能我以为应用场合不是不少,本身感觉也不是很深入,从理论上是成立的。性能
小项目,之后变更不大的不用三层架构。
ASP.NET三层结构说明
完善的三层结构的要求是:修改表现层而不用修改逻辑层,修改逻辑层而不用修改数据层。不然你的应用是否是多层结构,或者说是层结构的划分和组织上是否是有问题就很难说.不一样的应用有不一样的理解,这只是一个概念的问题.
理解ASP.NET三层结构——为何要分三层?
咱们用三层结构主要是使项目结构更清楚,分工更明确,有利于后期的维护和升级。它未必会提高性能,由于当子程序模块未执行结束时,主程序模块只能处于等待状态。这说明将应用程序划分层次,会带来其执行速度上的一些损失。但从团队开发效率角度上来说却能够感觉到大不相同的效果。
须要说明一下,三层结构不是.NET的专利,也不是专门用在数据库上的技术。它是一种更加普适的架构设计理念。
此种架构要在数据库设计上注意表之间的关系,尽力知足主与子的关系。在功能上对用户要有必定的限制,不要表如今对于子表的删除操做必定要慎重,以避免形成主表与子表的数据在逻辑上出现的主表的外键在子表中没有相对应的值。
对于表的综合查询方法是:
先对主表查询,调用主表所对应的DL。再根据主表的记录分别对每个子表进行查询。将自表的查询结果添加的主表后,造成一个大的查询集合。
对于表的操做(增删改):
此时只对主表进行操做,调用主表对应的DL中的操做方法。
RL层是逻辑判断层,主要是对页面上传入的数据进行逻辑判断。RL层之上就是UI