二层和三层客户/服务器数据库系统的比较研究

时间:2023-04-18 10:05:16 手机站 来源:网友投稿

摘要:本文主要介绍了数据库系统体系结构的历史变迁,二层和三层客户/服务器数据库的各自特点、优缺点,其中对两者作了比较,分析了三层客户/服务器中十分重要的一部分——中间件。

关键词:数据库系统;客户/服务器;中间件;C/S

中图分类号:TP311.131 文献标识码:A文章编号:1007-9599 (2010) 04-0000-03

Comparison Between Two-tier&Three-tier Client/Server Database System

Wang Jiquan

(ZheJang Industry Technology University,Hangzhou310014,China)

Abstract:This paper mainly presents the historical development of the construction of Database system and the characteristics of two-tier and three-tier client/server database,then makes a comparison between them and analysis a important part of three-tier client/server----middleware.

KeyWords:Database System;Client/Server;Middleware;C/S

一、引言

随着计算机、网络与通信技术的不断发展,通信环境在不断改善,对办公及管理的计算机网络化的需求也越来越大,对数据量的要求也越来越大。目前建造数据管理系统最流行的技术是采用客户/服务器(Client/Server)体系,C/S系统又称分布式计算系统,它的含义是程序的数据处理并不像通常在基于小型机或基于主机的计算机系统(终端方式)中那样在单个计算机上发生,而是把程序的不同部分在多台计算机上同时运行。而C/S体系的实现有两种方式:二层结构和三层结构。前者是传统的已经成熟的C/S应用技术,后者正日益流行并不断发展。十分有必要来介绍两者的各自特点,以及他们的优缺点,中间件是三层C/S中最主要的一部分,有必要深入了解它。

二、数据库系统体系结构的历史变迁

数据库系统的体系结构指的是带有数据库系统的计算机系统中各组成部分之间的相互关系,它是硬件、软件、算法、语言的综合性概念。研究数据库系统的体系结构就是要研究它的硬件分布和软件的功能分配。一个完整的数据库应用系统通常包括应用的数据库存储逻辑(即数据库)、事物逻辑、应用逻辑以及应用界面等四部分。

80年代以前,由于硬件性能和应用条件的限制,数据库系统采用的是集中式的体系结构。在这样的系统中,所有程序,包括DBMS、访问数据库的应用程序以及用户终端发送并接受数据的通信设施,都在一个主计算机上运行,因而这样的系统又称为主机/终端结构。

随着PC的兴起,出现了运行在单机上的单用户数据库管理系统。这种系统具有强大的功能、高度的灵活性和很快的速度,但数据的安全性和完整性得不到保证。

基于LAN的数据库管理系统的出现使多台PC共享同一数据源成为可能,但它的工作方式并没有本质上的改变。所有实际的数据处理仍然是在运行数据库应用的PC上执行的,文件服务器只不过是将整个数据文件通过网络传送到用户的PC上,数据的安全性和完整性问题仍然没有解决。

事务处理的机制的提出使数据库领域的发展有了一个飞跃。这种数据库模型在对数据进行操作之前先在待操作表的一份临时备份上进行,当应用程序把操作提交给数据库本身后,才能成为永久性的操作,该过程称作事务。正是这种事务处理的机制使得运行数据库的计算机系统从最初的集中式计算机系统、个人计算机系统过渡到C/S系统和将来的分布式系统成为可能。C/S计算模式把界面和数据处理操作分开在前端(客户端)和后端(服务器端),这样C/S系统的工作速度主要取决于进行大量数据操作的服务器;同时也大大降低了对网络传输速度的要求。经过十年的发展,C/S结构已变得非常成熟,成为90年代以来主流的数据库体系结构。

随着90年代Internet的飞速发展,数据库系统在与Internet应用结合的过程中,数据库的体系结构也由C/S发展到三层体系结构。

三、二层C/S结构

二层C/S模型实质就是将数据存取和应用程序分离开来,用数据服务器执行数据操作,客户机来执行应用程序,用户在客户端通过网络同服务器打交道,客户端又包括用户界面和企业逻辑,网络上传输的数据主要是客户端向服务器发出的请求以及服务器发给客户端的响应结果或出错信息。此结构即为二层结构。

比如SQL Server是一个真正的客户机/服务器关系型数据库系统。它使企业可以设计出能够不断改变的信息需求的分布式数据库系统。客户端通过网络向服务器发送SQL语句,服务器返回客户端结果集。

这种结构对于规模较小,复杂程度较低的系统比较合适,但在开发和配置复杂的更大规模的企业应用中逐渐显示出不足。

四、三层体系结构的产生和特点

(一)Internet的应用促进了三层体系结构的出现

进入90年代以来,Internet浪潮以席卷全球之势,打破了信息的地域分割,加速了全球信息化的步伐,Internet应用由此也成为数据库技术发展的新热点。这种全球信息的一体化进程必然导致传统的数据库系统与Internet应用紧密结合在一起,这迫使我们扩展Web服务器的功能来实现应用的商业逻辑和访问数据库。

我们知道,Internet应用本身就是浏览器/Web服务器/数据库服务器的一种多层计算结构,从工作模式来说Internet是对C/S结构的继承和发展,即仍然是“请求应答”的方式。在目前,Internet上的数据库应用的模式是:在将数据存取逻辑和应用逻辑(数据的处理)相分离的基础上,将用户界面也作为单独的一部分从应用逻辑中分离出来,从而使原来的客户端划分为两部分:一部分是基于浏览器的Internet用户界面部分,另一部分是独立于数据存储逻辑和用户界面的应用服务器,该服务器既需有面向Web服务器的接口,又需有面向数据库服务器的接口。这样当Web服务器接收到Web客户访问动态数据内容而需要和数据库连接时,就能通过应用服务器的这两个界面建立起数据库服务器和Web服务器间的连接。

(二)数据分析的需求是数据库结构系统向三层体系结构发展的强大动力

市场竞争日趋激烈,企业管理者对捕获、集成和分析事务级的业务数据、历史数据和外部数据的要求也日趋强烈,这种数据分析应用的需求带动了数据分析市场的繁荣,突出表现在数据仓库的理论研究、系统实践的普遍开展及联机分析处理(OLAP)和数据挖掘技术的迅速发展。其特点是:

1.决策分析需要数据量很大的历史数据,并且数据分布在不同地域。

2.数据处理要求灵活多变、具有随机性。这样,如果将应用逻辑仍放在客户端就使得客户端变得过于臃肿,成本高,缺乏灵活性,不易于维护,这样就迫使传统的C/S结构自然而然的从二层结构向三层(或多层)结构扩展。

(三)三层C/S结构

三层结构是在分布式技术成熟之后建立起来的,所谓三层C/S结构,基本思想是将用户界面同企业逻辑分离,把信息系统按功能明确地划分为表示层、功能层和数据层三大块,使其在逻辑上独立。

由于数据层已作为数据库管理系统独立出来,所以三层C/S结构的关键是将表示层和功能层分离成各自独立的模块,使其之间有清晰明了、简洁完备的接口,可以灵活地放置在相同或不同的硬件平台上其特点之一是,通过把与用户界面无关的功能从表示层移到功能层,只有少量与用户界面密切相关的代码运行在客户的桌面系统上,使客户机成为“瘦”客户机。

1.表示层:是信息系统的用户接口部分,主要功能是提供操作人员独立的、可移植的应用界面(一般是基于浏览器的),即数据的表示逻辑,输入数据、输出结果。它并不拥有企业逻辑,或只拥有部分不涉及企业核心机密的应用逻辑。

2.功能层:是应用系统的主体,包括系统中核心的和易变的企业逻辑,它的功能是接收输入,处理后,返回结果。该应用层执行大部分的计算,负责与数据库的交互工作,并将结果发送给客户层。中间层负责提供可共享、可控制的应用逻辑。

3.数据层:负责对数据库的访问、存储和管理,能够迅速执行大量数据的更新和检索。

五、二层和三层结构的比较

(一)开发方面

二层结构的最大优点是开发速度快,多数情况下,利用两层结构可以在相当短的时间内开发出一个适用方便,但不是十分灵活的应用系统,一个独立开发者,只要从数量可观的单机开发工具中任选一种,就可以格式化数据并移植到一个远程数据库上。

而三层结构目前的开发工具相对而言还不够成熟,许多工具有对服务器不够完善的开发能力,这对信息系统组织进行简化维护工作和促进代码重用的努力来说,是一个潜在的障碍。

当前个人计算机开发工具市场正在爆炸性地增长,使的C/S工具市场正处于一种不稳定的成长状态中。这给两层结构系统带来了实现上的复杂性和潜在的远期冲突等问题。从一种专用技术向另一种专用技术的转移意味着原有投资的巨大浪费,因为不同的工具之间的代码是互不兼容的。

而三层结构中按标准化设计的组件可以被多个应用重复使用。可重用逻辑降低了二次开发的劳动强度,减轻了维护的工作负担,并能节省当客户应用变化是的移植开发。

(二)在网络流量和系统的反应速度方面

由于两层结构主要的处理(逻辑和计算)存在与客户层,客户端往往过于庞大、负载重,相当“肥”,而服务器端则相当“瘦”,为了完成系统的各种功能,往往不得不从服务器上将大量的数据传送到客户端上再进行各种处理,另外客户与服务器所用到的SQL操作也会加重网络的负担,这种肥客户端情况下,系统的反应速度慢。

而三层结构由于数据在发送到局域网之前首先由功能性服务器过滤,网络通讯量会因此下降;多服务请求和复杂数据访问,分散地来自中间层而不是来自客户端,进一步降低了网络的通讯量;再者,由于目前个人计算机客户端被定位为描述层的最底端,使得对内存和外存容量的需求得到缓解。

(三)安全性方面

由于在两层结构中一个用户可以为每个SQL服务器存取申请一个独立的口令,这使得系统保密性在C/S环境中变得非常复杂,终端用户查询工具的增加也使得数据库服务器的保密性降低。而当今开发的大多数C/S的应用都没有设置复杂的中间层来提高保密性。取而代之的却是终端用户获得一个用户数据存取的密码。在大多数情况下,这样的密码可以用于不同的数据存取工具访问数据,这样的工具可以在大多数商品化的个人计算机电子表格或数据库软件中找得到。利用这些工具,用户可以存取哪怕是特意隐藏起来的字段或表格,甚至窃取数据。

而三层结构中,使用了开放式计算环境,在中间层的功能服务器中提供的加密核心技术较好的克服了以上两层结构中的安全性问题。系统可以把关键性的逻辑放在服务器上进行集中管理,而不需要放在每台客户机上。对企业敏感数据的访问也可通过应用服务器来进行,而不是由客户机直接进行存取。这就增加了系统的安全性。客户端应用并不直接连接到服务器的数据库上,对数据的直接操作很有限,结构上的限制极大地提高了数据的安全性。

(四)灵活性和独立性

企业逻辑安装在每个客户机上,使得对系统的维护、修改非常困难。当企业逻辑因为市场或管理等各方面原因有所改变后,软件的运作流程就要做相应的调整,而流程牵扯到各个部门,它们之间的数据耦合方式就要改变,程序的修改将不能统一进行,可能会出现数据不一致,破坏数据库的完整性。如果软件人员较分散的话,还可能造成企业逻辑的混乱。

系统通过把用户应用逻辑集中到中间层,从而获得了对应用逻辑的独立性。当用户需求改变时,开发人员可以迅速地在中间层(应用服务器)上更新应用逻辑,而无需将更新后的应用逻辑递交到成千上万的桌面系统上去。这种结构无疑极大地提高了系统的灵活性。

六、中间件

随着以网络计算为中心的应用系统规模的扩大和软硬件结构的日趋复杂多样,客户端和服务器端的负担也日益繁重,并且传统软件的移植性、互操作性和重用性也都不能满足现在的性能需求,为此人们提出了一种介于客户端和服务器端的软件——中间件。

业内专家对于中间件的定义是:位于硬件、操作系统平台和应用程序之间的通用服务,具有标准的程序接口和协议;对于不同的硬件、操作系统平台具有符合标准接口和协议规范的具体体现。在C/S环境下,一般将中间件放在位于客户机和服务器之间的中间层,负责应用逻辑的处理,从而使客户端变得精干。与此同时,中间件还可以放在客户机和服务器之间的多层应用服务器中。中间件已经成为了联结分布式计算环境中各个相对独立的系统的胶合剂。中间件主要用来解决分布异构问题。具体来说,它能满足大量应用需要,运行于多种硬件和操作系统平台,支持分布计算,提供跨网络、硬件和操作系统平台的透明性的应用或服务的交互;支持标准的接口和协议,中间件技术就是“能把复杂变简单”。

中间件具有如下特点:

1.易于集成。中间件能无缝地连入应用开发环境中,应用程序可以很容易地定位和共享中间件提供的应用逻辑和数据。

2.易于移植。中间件使与平台有关的细节对于应用程序来说是透明的,因此可以在不改变应用程序代码的情况下改换计算机底层硬件、操作系统或通信协议。

3.易于演进。中间件实现的功能对应用程序来说是透明的,所以可以对局部进行改进而不会影响到系统的其它部分。

4.高可靠性。中间件应该是可靠的,需要提供接管和恢复功能,保证事务及关键性业务不被丢失。

5.易于使用。中间件能和同构或异构环境下的多种数据源通信,同时它能管理数据间的公共逻辑约束。它将用户从复杂的平台、网络、数据库选择中解放出来。

近年来,以中间件为框架基础的三层结构C/S模式已被广泛证实为建立开放式关键业务应用系统的最佳环境。因为,作为构造三层结构业务应用系统的基础平台,中间件提供了以下两个主要功能:

负责客户机与服务器之间的联系和通讯,提供了表示层与功能层之间、功能层与功能层之间、功能层与数据层之间、数据层与数据层之间的联接和完善的通信机制。

提供了一个三层结构应用开发和运行的平台,包括:支持模块化应用开发的框架;硬件、操作系统、数据库和网络差异的屏蔽;保证事务完整性和数据一致性的事务管理机制;应用的负载均衡和管理功能;应用的高可用性及安全控制机制等。

由此可见,中间件为建立、运行、管理和维护三层C/S体系结构的应用提供了一个基础框架,将大大降低应用开发、管理和维护的人力物力开销,提高其成功率,真正使大型企业应用的高效实现成为可能。

七、结束语

文中阐述和分析了基于客户/服务器的二层结构和三层结构的技术特点及优劣,并对其做了比较,在实际的应用中既要考虑用户的需要,又要考虑企业的实际情况和工具软件的发展发展趋势,合理划分系统,选择结构,设计出比较完美的应用程序。

参考文献:

[1]崔巍.数据库系统及应用.高等教育出版社

[2]张涛.新一代数据库系统的三层体系结构.电子技术

[3]王丹凤,刘威.客户/服务器结构的数据库系统.长春大学学报

[4]阎秀群,叶毅.客户/服务器数据库应用系统.北京邮电大学学报

[5]宋晓梁,刘东生,许满武.中间件及其在三层客户机/服务器模型中的应用.计算机应用

作者简介:

汪吉权,硕士研究生在读,现工作单位:诸暨市职教中心

推荐访问:二层 客户 服务器 研究 数据库系统

版权声明 :以上文章中选用的图片文字均来源于网络或用户投稿 ,如果有侵权请立即联系我们 , 我们立即删除 。