三层构架.docx

上传人:b****6 文档编号:7126726 上传时间:2023-01-20 格式:DOCX 页数:15 大小:33.04KB
下载 相关 举报
三层构架.docx_第1页
第1页 / 共15页
三层构架.docx_第2页
第2页 / 共15页
三层构架.docx_第3页
第3页 / 共15页
三层构架.docx_第4页
第4页 / 共15页
三层构架.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

三层构架.docx

《三层构架.docx》由会员分享,可在线阅读,更多相关《三层构架.docx(15页珍藏版)》请在冰豆网上搜索。

三层构架.docx

三层构架

三层架构

三层架构(3-tierapplication)通常意义上的三层架构就是将整个业务应用划分为:

表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。

区分层次的目的即为了“高内聚,低耦合”的思想。

1、表现层(UI):

通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。

2、业务逻辑层(BLL):

针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。

3、数据访问层(DAL):

该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。

概述

在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。

微软推荐的分层式结构一般分为三层,从下至上分别为:

数据访问层、业务逻辑层(又或成为领域层)、表现层。

三层结构原理:

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

所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。

这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。

三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。

通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。

表示层

位于最外层(最上层),离用户最近。

用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。

业务逻辑层

业务逻辑层(BusinessLogicLayer)无疑是系统架构中体现核心价值的部分。

它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。

例如MartinFowler在《PatternsofEnterpriseApplicationArchitecture》一书中,将整个架构分为三个主要的层:

表示层、领域层和数据源层。

作为领域驱动设计的先驱EricEvans,对业务逻辑层作了更细致地划分,细分为应用层与领域层,通过分层进一步将领域逻辑与领域逻辑的解决方案分离。

业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。

由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。

如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。

因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。

正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。

对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。

依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。

数据层

数据访问层:

有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。

简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。

如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。

优缺点

优点:

1、开发人员可以只关注整个结构中的其中某一层;

2、可以很容易的用新的实现来替换原有层次的实现;

3、可以降低层与层之间的依赖;

4、有利于标准化;

5、有利于各层逻辑的复用。

缺点:

1、降低了系统的性能。

这是不言而喻的。

如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。

2、有时会导致级联的修改。

这种修改尤其体现在自上而下的方向。

如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。

规则

三层结构的程序不是说把项目分成DAL,BLL,WebUI三个模块就叫三层了,下面几个问题在你的项目里面:

1、UILayer里面只有少量(或者没有)的SQL语句或者存储过程调用,并且这些语句保证不会修改数据?

2、如果把UILayer拿掉,你的项目还能在Interface/API的层次上提供所有功能吗?

3、你的DAL可以移植到其他类似环境的项目吗?

4、三个模块,可以分别运行于不同的服务器吗?

如果不是所有答案都为YES,那么你的项目还不能算是严格意义上的三层程序、三层程序有一些需要约定遵守的规则:

1、最关键的,UI层只能作为一个外壳,不能包含任何BizLogic的处理过程

2、设计时应该从BLL出发,而不是UI出发、BLL层在API上应该实现所有BizLogic,以面向对象的方式

3、不管数据层是一个简单的SqlHelper也好,还是带有Mapping过的Classes也好,应该在一定的抽象程度上做到系统无关。

4、不管使用COM+(EnterpriseService),还是Removing,还是WebService之类的远程对象技术,不管部署的时候是不是真的分别部署到不同的服务器上,最起码在设计的时候要做这样的考虑,更远的,还得考虑多台服务器通过负载均衡作集群,所以考虑一个项目是不是应该应用三层/多层设计时,先得考虑下是不是真的需要?

实际上大部分程序就开个WebApplication就足够了,完全没必要作的这么复杂、而多层结构,是用于解决真正复杂的项目需求的。

与MVC的区别

MVC(模型Model-视图View-控制器Controller)是一种设计模式,我们可以用它来创建在域对象和UI表示层对象之间的区分。

同样是架构级别的,相同的地方在于他们都有一个表现层,但是他们不同的地方在于其他的两个层。

在三层架构中没有定义Controller的概念。

这是我认为最不同的地方。

而MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。

当然了。

在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是由实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。

什么是C/S和B/S结构?

    C/S又称Client/Server或客户/服务器模式。

服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。

客户端需要

安装专用的客户端软件。

    B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或InternetExplorer,服务器安装Oracle、Sybase、Informix或SQLServer等数据库。

浏览器通过WebServer同数据库进行数据交互。

    C/S的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。

对应的优点就是客户端响应速度快。

缺点主要有以下几个:

    只适用于局域网。

而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。

这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。

    客户端需要安装专用的客户端软件。

首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。

特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。

还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。

    对客户端的操作系统一般也会有限制。

可能适应于Win98,但不能用于Win2000或WindowsXP。

或者不适用于微软新的操作系统等等,更不用说Linux、Unix等。

    B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。

只要有一台能上网的电脑就能使用,客户端零维护。

系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。

甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。

C/S与B/S区别:

Client/Server是建立在局域网的基础上的、Browser/Server是建立在广域网的基础上的。

区别

C/S结构

B/S结构

硬件环境不同:

一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。

建立在广域网之上的,不必是专门的网络硬件环境,例与电话上网,租用设备、信息自己管理、有比C/S更强的适应范围,一般只要有操作系统和浏览器就行

对安全要求不同

一般面向相对固定的用户群,对信息安全的控制能力很强、一般高度机密的信息系统采用C/S结构适宜、可以通过B/S发布部分可公开信息、

建立在广域网之上,对安全的控制能力相对弱,面向是不可知的用户群、

对程序架构不同

程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑、

对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上、比C/S有更高的要求B/S结构的程序架构是发展的趋势,从MS的、Net系列的BizTalk2000Exchange2000等,全面支持网络的构件搭建的系统、SUN和IBM推的JavaBean构件技术等,使B/S更加成熟、

软件重用不同

程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好、

对的多重结构,要求构件相对独立的功能、能够相对较好的重用。

系统维护不同

程序由于整体性,必须整体考察,处理出现的问题以及系统升级、升级难、可能是再做一个全新的系统,系统维护开销大。

构件组成,方面构件个别的更换,实现系统的无缝升级、系统维护开销减到最小、用户从网上自己下载安装就可以实现升级。

处理问题不同

程序可以处理用户面固定,并且在相同区域,安全要求高需求,与操作系统相关、应该都是相同的系统。

建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的、与操作系统平台关系最小。

用户接口不同

多是建立的Window平台上,表现方法有限,对程序员普遍要求较高。

建立在浏览器上,有更加丰富和生动的表现方式与用户交流、并且大部分难度减低,减低开发成本。

信息流不同

程序一般是典型的中央集权的机械式处理,交互性相对低。

信息流向可变化,B-BB-CB-G等信息、流向的变化,更象交易中心。

B/S与C/S的区别与联系

这个问题出现的概率比较大,自己理解的不透彻,需要加深下印象,特在这里记录下来

1、从性能上看

  B/S的优势是异地浏览和信息采集的灵活性。

任何时间、地点、系统,只要是可以使用浏览器上网,都可以使用B/S系统的终端。

但是采用B/S结构,客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作是由服务器承担的,加重了服务器的负担。

由于客户端使用浏览器,使得网上发布的信息必须是以HTML格式为主,其他格式文件多半是以附件的形式存放,而HTML格式文件(WEB页面)不便于编辑修改,给文件管理带来了不便

  C/S结构,服务器和客户端都能处理任务,虽然对客户机要求较高,但可以减轻服务器的压力。

2、从系统的开发上

  C/S结构是建立在中间件产品基础之上的,要求应用开发者去处理食物管理、消息队列、数据的复制和同步、通信安全等系统级的问题。

使得应用程序的维护、移植和互操作变得复杂。

如果客户端在不同的操作系统上,C/S结构的软件需要开发不同版本的客户端软件。

但和B/S结构相比,C/S技术发展历史更为“悠久”。

从技术成熟度及软件设计、开发人员的掌握水平来看,C/S技术应更成熟、更可靠。

3、从系统的升级维护上看

  C/S系统的各部分模块中有一部分改变,就要关联到其他模块的变动,使得系统的升级成本比较大。

B/S与C/S处理模式相比,则大大简化了客户端,只要客户端机器能上网就可以。

对于B/S来说,开发、维护等几乎所有工作都集中在服务器端,当企业网络对应进行升级时,只需要更新服务器端的软件就可以。

减轻了异地用户系统维护和升级的成本。

4、C/S模式的优点和缺点

  优点:

a、由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。

        b、操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。

        c、C/S结构的管理信息系统具有较强的食物处理能力,能实现复杂的业务流程。

  缺点:

a、需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。

        b、兼容性差,对于不同的开发工具,具有较大的局限性。

若采用不同工具,需要重新改写程序。

        c、开发成本较高,需要具有一定专业水准的技术人员才能完成。

5、B/S模式的优点和缺点

  优点:

a、具有分布性特点,可以随时随地进行查询、浏览等业务处理。

        b、业务扩展简单方便,通过增加网页即可增加服务器功能。

        c、维护简单方便,只需要改变网页,即可实现所有用户的同步更新。

        d、开发简单,共享性强

  缺点:

a、个性化特点明显降低,无法实现具有个性化的功能要求

        b、操作是以鼠标为最基本的操作方式,无法满足快速操作的要求

        c、页面动态刷新,响应速度明显降低

        d、无法实现分页显示,给数据库访问造成较大的压力

        e、功能弱化,难以实现传统模式下的特殊功能需求

二、B/S结构采用星形拓扑结构建立企业内部通信网络或利用Internet虚拟专用网(UPN)。

前者的特点是安全、快捷、准确。

后者则具有节省投资、跨地域广的优点。

  C/S程序可以处理用户面固定,并且在相同的区域,安全要求高需求,与操作系统相关

  B/S建立在广域网上,面向不同的用户群,分散地域,与操作系统平台关系最小

7、用户接口不同

  C/S多建立在Window平台上,表现方法有限,对程序员要求普遍较高

  B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流,并且大多数难度减低,减低开发成本

8、信息流不同

  C/S程序一般是典型的中央集权的机械式处理,交互性相对较低

  B/S信息流向可变化,更像交易中心

一、什么是C/S和B/S

要想对“C/S”和“B/S”技术发展变化有所了解,首先必须搞清楚三个问题。

第一、什么是C/S结构。

C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。

它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。

目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。

这也就是目前应用系统的发展方向。

传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。

由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。

而且代价高,效率低。

第二、什么是B/S结构。

B/S(Browser/Server)结构即浏览器和服务器结构。

它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。

在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。

这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。

以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。

它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。

特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。

第三、管理软件主流技术。

管理软件技术的主流技术与管理思想一样,也经历了三个发展时期。

首先,界面技术从上世纪DOS字符界面到Windows图形界面(或图形用户界面GUI),直至Browser浏览器界面三个不同的发展时期。

其次,今天所有电脑的浏览器界面,不仅直观和易于使用,更主要的是基于浏览器平台的任何应用软件其风格都是一样的,使用人对操作培训的要求不高,而且软件可操作性强,易于识别;再者,平台体系结构也从过去单用户发展到今天的文件/服务器(F/S)体系、客户机/服务器(C/S)体系和浏览器/服务器(B/S)体系。

二、C/S和B/S之比较

C/S和B/S是当今世界开发模式技术架构的两大主流技术。

C/S是美国Borland公司最早研发,B/S是美国微软公司研发。

目前,这两项技术以被世界各国所掌握,国内公司以C/S和B/S技术开发出产品也很多。

这两种技术都有自己一定的市场份额和客户群,各家企业都说自己的管理软件架构技术功能强大、先进、方便,都能举出各自的客户群体,都有一大群文人墨客为自己摇旗呐喊,广告满天飞,可谓仁者见仁,智者见智。

1、C/S架构软件的优势与劣势

(1)、应用服务器运行数据负荷较轻。

最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。

二者可分别称为前台程序与后台程序。

运行数据库服务器程序的机器,也称为应用服务器。

一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。

(2)、数据的储存管理功能较为透明。

在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。

所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。

在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。

在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。

(3)、C/S架构的劣势是高昂的维护成本且投资大。

首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。

其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。

在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。

2、B/S架构软件的优势与劣势

(1)、维护和升级方式简单。

目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。

对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。

无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。

所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。

今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。

因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。

(2)、成本降低,选择更多。

大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。

现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。

所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。

比如说很多人每天上“网易”(原文为新浪)网,只要安装了浏览器就可以了,并不需要了解“网易”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。

(3)、应用服务器运行数据负荷较重。

由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。

但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。

因此,许多单位都备有数据库存储服务器,以防万一。

3,C/S与B/S区别

Client/Server是建立在局域网的基础上的,Browser/Server是建立在广域网的基础上的。

(1)、硬件环境不同:

C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。

B/S建立在广域网之上的,不必是专门的网络硬件环境,例如电话上网,租用设备,信息自己管理,有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。

(2)、对安全要求不同

C/S一般面向相对固定的用户群,对信息安全的控制能力很强。

一般高度机密的信息系统采用C/S结构适宜,可以通过B/S发布部分可公开信息。

B/S建立在广域网之上,对安全的控制能力相对弱,面向是不可知的用户群。

(3)、对程序架构不同

C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1