C/S软件体系结构是基于资源不对等,且为实现共享而提出来的,是20世纪90年代成熟起来的技术, C/S体系结构定义了工作站如何与服务器相连,以实现数据和应用分布到多个处理机上。
C/S体系结构有三个主要组成部分:数据库服务器、客户应用程序和网络。
l 服务器
(1)数据库安全性的要求;
(2)数据库访问并发性的控制;
(3)数据库前端的客户应用程序的全局数据完整性规则;
(4)数据库的备份与恢复。
l 客户应用程序
(1)提供用户与数据库交互的界面;
(2)向数据库服务器提交用户请求并接收来自数据库服务器的信息;
(3)利用客户应用程序对存在于客户端的数据执行应用逻辑要求。
1) 优点
ü C/S 体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。
ü 系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。
ü 在C/S体系结构中,系统中的功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用程序中都要对一DBMS进行编码。将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。
2) 缺点
ü 开发成本较高
ü 客户端程序设计复杂
ü 信息内容和形式单一
ü 用户界面风格不一,使用繁杂,不利于推广使用
ü 软件移植困难
ü 软件维护和升级困难
ü 新技术不能轻易应用
c/s软件体系结构是20世纪90年代成熟起来的技术,它将应用一分为二,服务器(后台)负责数据管理.客户机(前台)完成与用户的交互任务。 传统的二层c/s结构存在以下几个局限:
1.二层c/s结构是 单一服务器且以局域网为中心的.所以难以扩展至大型企业广域网或Internet;
2.软硬件的组合及集成能力有限;
3.客户机的负荷太重.难以管理大量的客户机.系统的性能容易变坏;
4.数据 安全性不好。
因为二层C/S有这么多缺点.三层C/S结构应运而生。三层C/S结构是将应用功能分成表示层、功能层和数据层三个部分.
图 2 三层C/S结构示意图
表示层是应用的用户接口部分,它担负着用户与应用间的对话功能。它用于检查用户从键盘等输入的数据,显示应用输出的数据。为使用户能直观地进行操作,一般要使用图形用户接口,操作简单、易学易用。在变更用户接口时,只需改写显示控制和数据检查程序,而不影响其他两层。检查的内容也只限于数据的形式和取值的范围,不包括有关业务本身的处理逻辑。
功能层相当于应用的本体,它是将具体的业务处理逻辑编入程序中。例如,在制作订购合同时要计算合同金额,按照定好的格式配置数据、打印订购合同,而处理所需的数据则要从表示层或数据层取得。表示层和功能层之间的数据交往要尽可能简洁。例如,用户检索数据时,要设法将有关检索要求的信息一次性地传送给功能层,而由功能层处理过的检索结果数据也一次性地传送给表示层。
通常,在功能层中包含有确认用户对应用和数据库存取权限的功能以及记录系统处理日志的功能。功能层的程序多半是用可视化编程工具开发的,也有使用COBOL和C语言的。
数据层就是数据库管理系统,负责管理对数据库数据的读写。数据库管理系统必须能迅速执行大量数据的更新和检索。因此,一般从功能层传送到数据层的要求大都使用SQL语言。
三层C/S的解决方案是:对这三层进行明确分割,并在逻辑上使其独立。原来的数据层作为数据库管理系统已经独立出来,所以,关键是要将表示层和功能层分离成各自独立的程序,并且还要使这两层间的接口简洁明了。
一般情况是只将表示层配置在客户机中,如果连功能层也放在客户机中,与二层C/S结构相比,其程序的可维护性要好得多,但是其他问题并未得到解决。客户机的负荷太重,其业务处理所需的数据要从服务器传给客户机,所以系统的性能容易变坏。
如果将功能层和数据层分别放在不同的服务器中,则服务器和服务器之间也要进行数据传送。但是,由于在这种形态中三层是分别放在各自不同的硬件系统上的,所以灵活性很高,能够适应客户机数目的增加和处理负荷的变动。例如,在追加新业务处理时,可以相应增加装载功能层的服务器。因此,系统规模越大这种形态的优点就越显著。
n 与传统的二层结构相比,三层C/S结构具有以下优点:
1) 允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性,从而使整个系统的逻辑结构更为清晰,能提高系统和软件的可维护性和可扩展性。
2) 允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层;并且这些平台和各个组成部分可以具有良好的可升级性和开放性。例如,最初用一台Unix工作站作为服务器,将数据层和功能层都配置在这台服务器上。随着业务的发展,用户数和数据量逐渐增加,这时,就可以将Unix工作站作为功能层的专用服务器,另外追加一台专用于数据层的服务器。若业务进一步扩大,用户数进一步增加,则可以继续增加功能层的服务器数目,用以分割数据库。清晰、合理地分割三层结构并使其独立,可以使系统构成的变更非常简单。因此,被分成三层的应用基本上不需要修正。
3) 三层C/S结构中,应用的各层可以并行开发,各层也可以选择各自最适合的开发语言。使之能并行地而且是高效地进行开发,达到较高的性能价格比;对每一层的处理逻辑的开发和维护也会更容易些。
4) 允许充分利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层,这就为严格的安全管理奠定了坚实的基础;
5) 整个系统的管理层次也更加合理和可控制。
n 要注意的问题
1) 三层C/S结构各层间的通信效率若不高,即使分配给各层的硬件能力很强,其作为整体来说也达不到所要求的性能。
2) 设计时必须慎重考虑三层间的通信方法、通信频度及数据量。这和提高各层的独立性一样是三层C/S结构的关键问题。
浏览器/服务器(B/S)风格就是上述三层应用结构的一种实现方式,其具体结构为:浏览器/Web服务器/数据库服务器。◎ B/S体系结构主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。从某种程度上来说,B/S结构是一种全新的软件体系结构。
优点
1) 基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。
2) B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。
缺点
1) B/S体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。
2) B/S体系结构的系统扩展能力差,安全性难以控制。
3) 采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远地低于C/S体系结构。
4) B/S体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。
B/S与C/S混合软件体系结构是一种典型的异构体系结构。
B/S软件体系结构,即Browser/Server (浏览器/服务器)结构,是随着Internet技术的兴起,对C/S体系结构的一种变化或者改进的结构。在B/S体系结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。
B/S体系结构主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件体系结构。基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了"零客户端"的功能,很容易在运行时自动升级。B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。
但是,与C/S体系结构相比,B/S体系结构也有许多不足之处,例如:
(1)B/S体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。
(2)B/S体系结构的系统扩展能力差,安全性难以控制。
(3)采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远地低于C/S体系结构。
(4)B/S体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。
从上面的对比分析中,我们可以看出,传统的C/S体系结构并非一无是处,而新兴的B/S体系结构也并非十全十美。由于C/S体系结构根深蒂固,技术成熟,原来的很多软件系统都是建立在C/S体系结构基础上的,因此,B/S体系结构要想在软件开发中起主导作用,要走的路还很长。我们认为,C/S体系结构与B/S体系结构还将长期共存。
C/S与B/S混合软件体系结构的优点是外部用户不直接访问数据库服务器,能保证企业数据库的相对安全。企业内部用户的交互性较强,数据查询和修改的响应速度较快。
C/S与B/S混合软件体系结构的缺点是企业外部用户修改和维护数据时,速度较慢,较烦琐,数据的动态交互性不强。
PS:其实BS和CS(三层)的融合是必然之路,这是各自风格的优缺点和系统实际需要所决定的.比如在ERP系统中,贴近生产,需要操作效率(例如 MRP)和对本地控制要求比较高的可以采用CS三层,但对于一些行政OA性质的,一些对外接口则可以采用BS的(例如电子商务部分).