|
知识路径: > 软件架构基础知识 > 软件架构的风格 > 软件架构风格 >
|
被考次数:5次
被考频率:中频率
总体答错率:24%  
知识难度系数:
|
由 软考在线 用户真实做题大数据统计生成
|
考试要求:掌握
相关知识点:13个
|
|
|
|
二层C/S架构是单一服务器且以局域网为中心的,所以难以扩展至大型企业广域网或Internet,软、硬件的组合及集成能力有限。客户机的负荷太重,难以管理大量的客户机,系统的性能容易变坏。另外,因为客户端程序可以直接访问数据库服务器,那么,在客户端计算机上的其他程序也可想办法访问数据库服务器,从而使数据库的安全性受到威胁。正是因为二层C/S架构有这么多缺点,因此,三层C/S架构应运而生。
|
|
|
|
与二层C/S架构相比,在三层C/S架构中,增加了一个应用服务器。可以将整个应用逻辑驻留在应用服务器上,而只有表示层存在于客户机上。这种结构称为瘦客户机(thin client)。三层C/S架构是将应用功能分成表示层、功能层和数据层三个部分,如下图所示。
|
|
|
|
|
(1)表示层。表示层是应用的用户接口部分,它担负着用户与应用间的对话功能。它用于检查用户从键盘等输入的数据,显示应用输出的数据。为使用户能直观地进行操作,一般要使用图形用户界面,使得操作简单、易学易用。在变更用户界面时,只需改写显示控制和数据检查程序,而不影响其他两层。检查的内容也只限于数据的形式和取值的范围,不包括有关业务本身的处理逻辑。
|
|
|
(2)功能层。功能层相当于应用的本体,它是将具体的业务处理逻辑编入程序中。例如,在制作订购合同时要计算合同金额,按照定好的格式配置数据、打印订购合同,而处理所需的数据则要从表示层或数据层取得。表示层和功能层之间的数据交往要尽可能简捷。例如,用户检索数据时,要设法将有关检索要求的信息一次性地传送给功能层,而由功能层处理过的检索结果数据也一次性地传送给表示层。
|
|
|
(3)数据层。数据层就是DBMS,负责管理对数据库数据的读写。
|
|
|
|
三层C/S的解决方案是:对这三层进行明确分割,并在逻辑上使其独立。原来的数据层作为DBMS已经独立出来,所以,关键是要将表示层和功能层分离成各自独立的程序,并且还要使这两层间的接口简洁明了。
|
|
|
一般情况是只将表示层配置在客户机中,如下图中(1)或(2)所示。如果像下图中(3)所示的那样连功能层也放在客户机中,与二层C/S架构相比,其程序的可维护性要好得多,但是其他问题并未得到解决。客户机的负荷太重,其业务处理所需的数据要从服务器传给客户机,所以系统的性能容易变差。
|
|
|
|
|
如果将功能层和数据层分别放在不同的服务器中,如上图中(2)所示,则服务器和服务器之间也要进行数据传送。但是,由于在这种形态中三层是分别放在各自不同的硬件系统上的,所以灵活性很高,能够适应客户机数目的增加和处理负荷的变动。例如,在追加新业务处理时,可以相应增加装载功能层的服务器(应用服务器)。因此,系统规模越大这种形态的优点就越显著。在三层C/S架构中,中间件是最重要的构件,有关中间件的知识,请阅读10.2节。
|
|
|
|
与传统的二层结构相比,三层C/S架构具有以下优点:
|
|
|
(1)允许合理地划分三层结构的功能,使之在逻辑上保持相对独立,从而使整个系统的逻辑结构更为清晰,能提高系统和软件的可维护性和可扩展性。
|
|
|
(2)允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层;并且这些平台和各个组成部分可以具有良好的可升级性和开放性。
|
|
|
(3)三层C/S架构中,应用的各层可以并行开发,各层也可以选择各自最适合的开发语言,使之能并行地、而且是高效地进行开发,达到较高的性能价格比;对每一层的处理逻辑的开发和维护也会更容易些。
|
|
|
(4)允许充分利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层,这就为严格的安全管理奠定了坚实的基础;整个系统的管理层次也更加合理和可控制。
|
|
|
:三层C/S架构各层间的通信效率若不高,即使分配给各层的硬件能力很强,其作为整体来说也达不到所要求的性能。此外,设计时必须慎重考虑三层间的通信方法、通信频度及数据量,这和提高各层的独立性一样是三层C/S架构的关键问题。
|
|
|
|
在三层C/S架构中,表示层负责处理用户的输入和向客户的输出(出于效率的考虑,它可能在向上传输用户的输入前进行合法性验证)。功能层负责建立数据库的连接,根据用户的请求生成访问数据库的SQL语句,并把结果返回给客户端。数据层负责实际的数据库存储和检索,响应功能层的数据处理请求,并将结果返回给功能层。
|
|
|
浏览器/服务器(Browser/Server,B/S)风格就是上述三层应用结构的一种实现方式,其具体结构为:浏览器/Web服务器/数据库服务器。B/S架构主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。从某种程度上来说,B/S结构是一种全新的软件架构。
|
|
|
在B/S架构中,除了数据库服务器外,应用程序以网页形式存放于Web服务器上,用户运行某个应用程序时只须在客户端上的浏览器中输入相应的网址,调用Web服务器上的应用程序并对数据库进行操作完成相应的数据处理工作,最后将结果通过浏览器显示给用户。可以说,在B/S模式的计算机应用系统中,应用(程序)在一定程度上具有集中特征。
|
|
|
基于B/S架构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。B/S架构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。
|
|
|
与C/S架构相比,B/S架构也有许多不足之处,例如:
|
|
|
(1)B/S架构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。
|
|
|
(2)B/S架构的系统扩展能力差,安全性难以控制。
|
|
|
(3)采用B/S架构的应用系统,在数据查询等响应速度上,要远远地低于C/S架构。
|
|
|
(4)B/S架构的数据提交一般以页面为单位,数据的动态交互性不强,不利于OLTP应用。
|
|
|