三层架构-BS架构
- 格式:docx
- 大小:33.78 KB
- 文档页数:5
MVC是指Model模型,View视图和Control控制器,也就是业务逻辑,界面和用户输入,这样划分系统比较清晰,这是设计人员要考虑的事。
什么是C/S结构。
C/S (Client/Server)结构,即大家熟知的客户机和服务器结构。
它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到 Client端和Server端来实现,降低了系统的通讯开销。
目前大多数应用软件系统都是Client/Server 形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。
这也就是目前应用系统的发展方向。
传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。
由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。
而且代价高,效率低。
如我院使用的上海超兰公司“案件统计”管理软件就是典型的C/S体系结构管理软件。
什么是B/S结构。
B/S(Browser/Server)结构即浏览器和服务器结构。
它是随着Internet 技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。
这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。
网络应用层架构一般分为两层架构、三层架构、N层架构。
其中B/S架构、C/S架构是两层架构的代表。
下面来看看C/S架构、B/S架构的区别与优缺点。
C/S架构C/S架构是Client/Server的缩写,翻译过来就是“客户端/服务器”。
C/S架构的业务逻辑主要集中在客户端,而这里的“服务器”,其实可以认为是数据库服务器,因为除了提供基础的数据库服务外,服务器并没有其他的功能。
常用于开发应用软件(application software),也就是QQ、网易云音乐之类的。
优点:充分发挥客户端计算机处理能力,客户端能将用户请求处理后再提交给服务器,将用户请求处理之后再提交给服务器;将服务器提供的数据处理后再以某种方式显示给客户,所以客户端的响应速度较快、网络通信量低。
其次,开发人员在开发单片机应用程序的过程中积累了大量可借鉴的经验,加之有高效的开发工具支持,所以开发效率很高。
缺点:因为业务逻辑处理主要集中在客户端,所以应用需求只要发生变化,即业务逻辑发生改变,就必须对客户端和服务器端的应用程序都进行修改。
服务器端应用程序修改比较容易,主要是服务器数量少,而且涉及数据储存,改动量较小。
但是,新的客户端应用程序需要重新分发给所有的用户,工作量大。
而且,开发客户端往往是针对某一操作系统编写的。
如适用于Windows操作系统的软件,通常不适用于Linux,而且就算都是Windows系统,Windows xp下能运行,但在Windows10下就未必了。
基于以上原因,在C/S架构的基础上又产生了B/S架构。
B/S架构B/S架构是Browser/Server的缩写,翻译过来就是“浏览器/服务器”。
B/S架构的业务逻辑和数据操作都集中在服务器端,而这里的“服务器”,其实可以认为是既包含应用服务器,也包含数据服务器,对客户端进行统一,用户只需要安装一个浏览器(Browser)。
优点:B/S架构解决了C/S架构存在部分问题,首先没有客户端的差异,用户只需要安装浏览器,无须另外安装客户端。
B/S结构简化了客户机的工作,把二层C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由Web服务器单独组成一层来负担其任务,从而减轻了客户机的压力三层架构(3-tier三层架构(3-tier application)通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。
区分层次的目的即为了“高内聚,低耦合”的思想.1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理.3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等.在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。
微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层.三层结构原理:3个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理。
所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。
这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上.三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。
通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM 通讯与中间层建立连接,再经由中间层与数据库进行交互.表示层位于最外层(最上层),离用户最近.用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。
业务逻辑层业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分。
它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层.例如Martin Fowler在《Patterns of Enterprise Application Architecture》一书中,将整个架构分为三个主要的层:表示层、领域层和数据源层。
什么是b/s架构B/S结构是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。
以下是由店铺整理关于什么是b/s架构的内容,希望大家喜欢!b/s架构的作用由于Client/Server结构存在的种种问题,因此人们又在它原有的基础上提出了一种具有三层模式(3-Tier)的应用系统结构浏览器/服务器(Browser/Server)结构。
Browser/Server结构是伴随着因特网的兴起,对Client/Server结构的一种改进。
从本质上说,Browser/Server结构也是一种Client/Server结构,它可看作是一种由传统的二层模式Client/Server结构发展而来的三层模式Client/Server结构在Web上应用的特例。
Browser/Server结构主要是利用了不断成熟的Web浏览器技术:结合浏览器的多种脚本语言和ActiveX技术,用通用浏览器实现原来需要复杂专用软件才能实现的强大功能,同时节约了开发成本。
B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零安装、零维护。
系统的扩展非常容易。
B/S结构的使用越来越多,特别是由需求推动了AJAX技术的发展,它的程序也能在客户端电脑上进行部分处理,从而大大的减轻了服务器的负担;并增加了交互性,能进行局部实时刷新。
b/s架构的特点(1)维护和升级方式简单。
当前,软件系统的改进和升级越发频繁,B/S架构的产品明显体现着更为方便的特性。
对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。
无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。
CS,BS的应⽤的区别C/S,B/S的应⽤的区别在进⾏软件开发时,通常会在两种基本架构中进⾏选择,即C/S架构和B/S架构。
⼀.C/S架构1.C/S架构:即Client/Server (客户机/服务器) 结构,是⼤家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,需要安装客户端才可进⾏管理操作。
客户端和服务器端的程序不同,⽤户的程序主要在客户端,服务器端主要提供数据管理、数据共享、数据及系统维护和并发控制等,客户端程序主要完成⽤户的具体的业务。
开发⽐较容易,操作简便,但应⽤程序的升级和客户端程序的维护较为困难。
2.C/S架构优缺点:优点:①C/S架构的界⾯操作可以很丰富。
②安全性能容易保证。
③因为是⼀层交互,所以响应速度较快。
缺点:①适⽤⾯窄,常⽤于局域⽹。
②⽤户群体固定。
③维护成本⾼,发⽣⼀次升级,所有客户端程序都要改变。
⼆.B/S架构1.B/S架构:即Browser/Server (浏览器/服务器) 结构,是随着Internet技术的兴起,对C/S结构的⼀种变化或者改进的结构。
在这种结构下,⽤户界⾯完全通过WWW浏览器实现。
客户端基本上没有专门的应⽤程序,应⽤程序基本上都在服务器端。
由于客户端没有程序,应⽤程序的升级和维护都可以在服务器端完成,升级维护⽅便。
由于客户端使⽤浏览器,使得⽤户界⾯“丰富多彩”,但数据的打印输出等功能受到了限制。
为了克服这个缺点,⼀般把利⽤浏览器⽅式实现困难的功能,单独开发成可以发布的控件,在客户端利⽤程序调⽤来完成。
2.B/S架构优缺点:优点:①客户端⽆需安装,有Web浏览器即可。
②B/S架构可以直接放在⼴域⽹上,通过⼀定的权限控制实现多客户访问的⽬的,交互性较强。
③B/S架构⽆需升级多个客户端,升级服务器即可。
缺点:①在跨浏览器上不尽⼈意。
②相⽐C/S架构,在表现上更花精⼒。
③在速度和安全性上需要花费巨⼤的设计成本。
三层CSBS架构简易知识三层CS架构指的是客户端-服务器架构,其中包含三个层次:展示层、业务逻辑层和数据访问层。
这种架构将整个系统的功能分层,使得各个层次之间的关注点分离,便于系统的维护和扩展。
展示层(Client Tier)是用户直接与系统进行交互的界面,可以是桌面应用程序、移动应用程序或Web应用程序。
展示层向用户展示数据和功能,并接收用户的输入。
在三层架构中,展示层的职责主要是处理用户界面逻辑,将用户请求发送给业务逻辑层,并将业务逻辑层返回的结果显示给用户。
业务逻辑层(Business Logic Tier)是整个系统的核心,负责处理展示层发送过来的请求,进行业务处理并返回结果给展示层。
业务逻辑层包含了系统的业务逻辑,可以调用数据访问层进行数据的增删改查操作,也可以调用其他系统或服务进行协作。
业务逻辑层的职责是处理业务逻辑,保证系统的正确性和可靠性。
数据访问层(Data Access Tier)是负责与数据库进行交互的层次。
数据访问层封装了与数据库的交互细节,提供统一的接口给业务逻辑层进行数据的操作。
数据访问层主要包括数据访问对象(DAO)和数据库连接管理组件。
数据访问层的职责是处理数据的存储和获取,提供高效可靠的数据访问接口。
相对于三层CS架构,BS架构指的是浏览器-服务器架构,其中包含两个层次:前端层和后端层。
这种架构将系统的功能分布在客户端和服务器端,使得用户可以通过浏览器访问应用程序,无需安装任何软件。
前端层(Frontend Layer)是用户直接与系统进行交互的界面,一般使用HTML、CSS、JavaScript等前端技术进行开发。
前端层负责显示用户界面,并处理用户的交互行为。
前端层将用户的请求发送给后端层,并将后端层返回的结果显示给用户。
前端层的职责是处理用户界面逻辑,提供友好的用户体验。
后端层(Backend Layer)是整个系统的核心,负责处理前端层发送过来的请求,进行业务处理并返回结果给前端层。
B/S结构简化了客户机的工作,把二层C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由WetiK务器单独组成一层来负担其任务,从而减轻了客户机的压力
三层架构(3-tier
三层架构(3-tier application)通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。
区分层次的目
的即为了“高内聚,低耦合”的思想。
1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统
的时候他的所见所得。
2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操
作,对数据业务逻辑处理。
3、数据访问层(DAL ):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。
在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。
微软推
荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(乂
或成为领域层)、表示层。
三层结构原理:
3个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理。
所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫
组件层。
这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器
就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三
层,即使这三个层放置到一台机器上。
三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。
通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM 通讯与中间层建立连接,再经由中间层与数据库进行交互。
表小层
位于最外层(最上层),离用户最近。
用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。
业务逻辑层
业务逻辑层(Business Logic Layer )无疑是系统架构中体现核心价值的部分。
它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的
系统设计,也即是说它是与系统所应对的领域(Domain )逻辑有关,很多时候,也将业务逻辑层称为领域层。
例如Martin Fowler 在《Patterns of Enterprise Application Architecture » 一书中,将整个架构分为三个主要的层:
表示层、领域层和数据源层。
作为领域驱动设计的先驱Eric Evans,对业务逻辑
层作了更细致地划分,细分为应用层与领域层,通过分层进一步将领域逻辑与领域逻辑的解决方案分离。
业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。
由于层是一种弱耦合结构,层与层之间的依
赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层
而言没有任何影响。
如果在分层设计时,遵循了面向接口设计的思想,那么这种向
下的依赖也应该是一种弱依赖关系。
因而在不改变接口定义的前提下,理想的分层
式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。
正因为如此,业务逻
辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。
对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。
依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。
数据层
数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。
简单的说法就是实现对数据表的Select , Insert , Update , Delete的操作。
如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping ,以及对象实体的持久化。
优点:
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
缺点:
1、降低了系统的性能。
这是不言而喻的。
如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。
这种修改尤其体现在自上而下的方向。
如果在表
示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的
业务逻辑层和数据访问层中都增加相应的代码
三层结构的程序不是说把项目分成DAL, BLL, WebUI三个模块就叫三层了, 下面几个问题在你的项目里面:
1. UlLayer里面只有少量(或者没有)的SQL语句或者存储过程调用,并且这些语句保证不会修改数据?
2. 如果把UlLayer拿掉,你的项目还能在Interface/API的层次上提供所有功能吗?
3. 你的DAL可以移植到其他类似环境的项目吗?
4. 三个模块,可以分别运行于不同的服务器吗?
如果不是所有答案都为YES,那么你的项目还不能算是严格意义上的三层程
序.三层程序有一些需要约定遵守的规则:
1. 最关键的,UI层只能作为一个外壳,不能包含任何BizLogic的处理过程
2. 设计时应该从BLL出发,而不是UI出发.BLL层在API上应该实现所有BizLogic,以面向对象的方式
3. 不管数据层是一个简单的SqlHelper也好,还是带有Mapping过的Classes也好,应该在一定的抽象程度上做到系统无关
4. 不管使用COM+(Enterprise Service), 还是Remoting, 还是
WebService之类的远程对象技术,不管部署的时候是不是真的分别部署到不同的服务器上,最起码在设计的时候要做这样的考虑,更远的,还得考虑多台服务器通
过负载均衡作集群
所以考虑一个项目是不是应该应用三层/多层设计时,先得考虑下是不是真
的需要?实际上大部分程序就开个WebApplication 就足够了,完全没必要作
的这么复杂.而多层结构,是用于解决真正复杂的项目需求的。
MVC (模型Model-视图View-控制器Controller )是一种设计模式,我们可以用它来创建在域对象和UI表示层对象之间的区分。
同样是架构级别的,相同的地方在于他们都有一个表现层,但是他们不同的地方在于其他的两个层。
在三层架构中没有定义Controller的概念。
这是我认为最不同的地方。
而
MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。
当然了。
在三层中也提到了Model,但是三层架构中Model 的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是已实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。