1、目录目录7.1 客户机客户机/服务器简介服务器简介17.2客户机客户机/服务器模式的体系结构服务器模式的体系结构27.3 客户机客户机/服务器模式的特性和优服务器模式的特性和优点点 37.4构建客户机构建客户机/服务器系统服务器系统 4机械工业出版社机械工业出版社07.1 客户机客户机/服务器简介服务器简介7.1.1 客户机客户机/服务器计算模式概念服务器计算模式概念v 从概念上讲,客户机从概念上讲,客户机/服务器模式可定义为一种特殊的服务器模式可定义为一种特殊的协作式处理模式,整个应用程序被分布于客户机和服协作式处理模式,整个应用程序被分布于客户机和服务器上。务器上。v 客户机和服务器两者都
2、参与一个应用程序的处理,其客户机和服务器两者都参与一个应用程序的处理,其中软件成分相互协作完成特定的应用程序功能,而硬中软件成分相互协作完成特定的应用程序功能,而硬件资源则提供软件成分相互协作的设施。件资源则提供软件成分相互协作的设施。v 可以把客户机可以把客户机/服务器模式的定义扩展到不仅包括软件服务器模式的定义扩展到不仅包括软件成分间的协作处理,而且包括硬件成分间的交互作用。成分间的协作处理,而且包括硬件成分间的交互作用。v 术语术语“客户机客户机/服务器模式服务器模式”就是两种含义:就是两种含义:一种是客户机和服务器软件成分间的交互作用。另一种是硬件“客户机”工作站和“服务器”系统间的关
3、系。机械工业出版社机械工业出版社17.1 客户机客户机/服务器简介服务器简介v客户机客户机/服务器模式的协作式处理是一种服务器模式的协作式处理是一种特殊的分布式处理。它把一个计算机应特殊的分布式处理。它把一个计算机应用系统分成三个基本组成部分:用系统分成三个基本组成部分:服务器:专门从事提供某项服务功能的计算机系统,称为服务器;客户机:面向最终用户、完成各自业务处理及用户界面的计算机系统,称为客户机;中间件:连接服务器和客户机的部分,称为中间件。机械工业出版社机械工业出版社27.1 客户机客户机/服务器简介服务器简介7.1.2 客户机/服务器环境下应用成分的分布 通常,一个典型的应用程序可分解
4、为四大组成成分。1.界面表示逻辑:与用户交互的应用代码,界面表示逻辑完成屏幕格式化,屏幕信息读写,窗口管理,键盘及鼠标管理等任务。如:图形用户界面(GUI)。2.业务处理逻辑:这是使用输入数据来完成业务处理和规则的应用代码,这些代码通常是用第三代语言(3GL)或第四代语言(4GL)编写的。3.数据处理逻辑:应用程序中负责数据逻辑(如完整性判别)等的代码,在关系数据库管理系统上的数据操作一般使用SQL语言编写。4.数据库管理:应用程序中由DBMS来完成实际数据存取处理的程序。在理想的情况下,DBMS 的数据管理相对于应用的业务处理来说是透明的。虽然DBMS不属于应用程序本身,但它是分布式处理的基
5、本组成部分。机械工业出版社机械工业出版社37.1 客户机客户机/服务器简介服务器简介7.1.2 客户机/服务器环境下应用成分的分布 通常,一个典型的应用程序可分解为四大组成成分。1.界面表示逻辑:与用户交互的应用代码,界面表示逻辑完成屏幕格式化,屏幕信息读写,窗口管理,键盘及鼠标管理等任务。如:图形用户界面(GUI)。2.业务处理逻辑:这是使用输入数据来完成业务处理和规则的应用代码,这些代码通常是用第三代语言(3GL)或第四代语言(4GL)编写的。3.数据处理逻辑:应用程序中负责数据逻辑(如完整性判别)等的代码,在关系数据库管理系统上的数据操作一般使用SQL语言编写。4.数据库管理:应用程序中
6、由DBMS来完成实际数据存取处理的程序。在理想的情况下,DBMS 的数据管理相对于应用的业务处理来说是透明的。虽然DBMS不属于应用程序本身,但它是分布式处理的基本组成部分。机械工业出版社机械工业出版社47.2 客户机客户机/服务器模式的体系结构服务器模式的体系结构 7.2.1、体系结构、体系结构在客户机/服务器环境下,客户机、服务器和中间件构成了客户机/服务器模式的基础结构。1、服务器 服务器(Server)最典型的任务是提供数据服务。服务器按功能类型和复杂程度划分,可以分为:文件服务器、数据库服务器、事务服务器、文档服务器、其他服务器。机械工业出版社机械工业出版社57.2 客户机客户机/服
7、务器模式的体系结构服务器模式的体系结构 2客户机客户机客户机客户机/服务器应用是以客户机(服务器应用是以客户机(Client)为中心的,客户机可)为中心的,客户机可以查询和使用服务器提供的服务。以查询和使用服务器提供的服务。按照客户机按照客户机/服务器模式中应用功能的分布,所有的客户机主要服务器模式中应用功能的分布,所有的客户机主要完成界面表示和一些业务逻辑(一部分或全部)功能。界面完成界面表示和一些业务逻辑(一部分或全部)功能。界面表示逻辑一方面反映应用程序的业务处理逻辑,另一方面提表示逻辑一方面反映应用程序的业务处理逻辑,另一方面提供最终用户的使用接口,用户通过客户机接口访问各种服务供最终
8、用户的使用接口,用户通过客户机接口访问各种服务器,得到相应的服务,还包括与所有外设(终端)和其他器,得到相应的服务,还包括与所有外设(终端)和其他I/O设备的交互。客户机类型包括:设备的交互。客户机类型包括:非图形化用户接口:包括条形码、扫描器、传真机、仿真终端、测试仪、机器人等;非图形化用户接口:包括条形码、扫描器、传真机、仿真终端、测试仪、机器人等;图形化用户接口(图形化用户接口(GUI):大都基于):大都基于Windows的软件和设备(如的软件和设备(如PC机、工作站等);机、工作站等);面向对象接口(面向对象接口(OOI):可视化、多媒体处理软件及其设备。):可视化、多媒体处理软件及其
9、设备。机械工业出版社机械工业出版社67.2 客户机客户机/服务器模式的体系结构服务器模式的体系结构 一般来说,一般来说,客户机软件客户机软件的类型包括:的类型包括:u公共应用程序;如字处理软件、报表编制软件、图形软件及公共应用程序;如字处理软件、报表编制软件、图形软件及管理软件等;管理软件等;u数据库前端软件;数据库前端软件;Sybase的的iSQL,Oracle 的的PL/SQLu应用生成和开发软件:如应用生成和开发软件:如PowerBuilder、Visual C+、Visual Basicu使用界面开发工具开发的最终用户使用界面(人机接口)和使用界面开发工具开发的最终用户使用界面(人机接
10、口)和业务处理逻辑程序。业务处理逻辑程序。机械工业出版社机械工业出版社77.2 客户机客户机/服务器模式的体系结构服务器模式的体系结构 3.中间件(中间件(Middleware)中间件泛指客户机和服务器之间的软件,也称客户机中间件泛指客户机和服务器之间的软件,也称客户机/服务器的服务器的接口软件。接口软件。中间件可以分为通用中间件和专用中间件。通用中间件如各种中间件可以分为通用中间件和专用中间件。通用中间件如各种网络操作系统(网络操作系统(NOS)、各种网络传输协议。)、各种网络传输协议。专用中间件有:专用中间件有:u数据库中间件:基于数据库中间件:基于SQL的异构数据库互连操作;的异构数据库
11、互连操作;u事务处理中间件:基于事务处理中间件:基于RPC等,共享不同服务器资源;等,共享不同服务器资源;u组件中间件:电子邮件及组件中间件:电子邮件及Lotus Notes等;等;u对象中间件:允许客户机调用驻留在远程服务器上的对象;对象中间件:允许客户机调用驻留在远程服务器上的对象;uDDSM(Distributed Data and Storage Systems Management)中间件:允许管理者与代理()中间件:允许管理者与代理(Agent)进行)进行对话;等等。对话;等等。机械工业出版社机械工业出版社87.2 客户机客户机/服务器模式的体系结构服务器模式的体系结构 7.2.2
12、、客户机、客户机/服务器模式的定位服务器模式的定位1.主机处理系统主机处理系统 所有程序都在一个主机上运行,包括所有程序都在一个主机上运行,包括DBMS、应用程序和、应用程序和通信接口(向终端发送和接受数据)。所有数据都存储在主通信接口(向终端发送和接受数据)。所有数据都存储在主机上,用户通过本地或远程终端来访问主机,终端仅由屏幕、机上,用户通过本地或远程终端来访问主机,终端仅由屏幕、键盘、以及和主机通信的设施组成,通常是键盘、以及和主机通信的设施组成,通常是“哑哑”的(本身的(本身没有或仅有一点处理功能)。没有或仅有一点处理功能)。机械工业出版社机械工业出版社97.2 客户机客户机/服务器模
13、式的体系结构服务器模式的体系结构 2.文件处理系统文件处理系统 所有应用处理包括数据处理都发生在所有应用处理包括数据处理都发生在PC工作站一端,文件工作站一端,文件服务器仅负责从硬盘查询所需要的文件并通过网络把它发送服务器仅负责从硬盘查询所需要的文件并通过网络把它发送给用户的给用户的PC机。数据处理通过机。数据处理通过PC机上的机上的DBMS 进行,处理进行,处理完的结果以整个文件的形式在送回文件服务器,由服务器再完的结果以整个文件的形式在送回文件服务器,由服务器再把文件存储在硬盘上。把文件存储在硬盘上。机械工业出版社机械工业出版社107.2 客户机客户机/服务器模式的体系结构服务器模式的体系
14、结构 3.客户机客户机/服务器处理系统服务器处理系统业界把客户机业界把客户机/服务器模式称为服务器模式称为“恰到好处的规模(恰到好处的规模(Rightsizing)”,意指客户机,意指客户机/服服务器将应用资源在客户机和服务器之间进行恰到好处地分配。务器将应用资源在客户机和服务器之间进行恰到好处地分配。客户机通过网络请求服务,服务器提供服务。在这个开放环境里,一个客户机可以客户机通过网络请求服务,服务器提供服务。在这个开放环境里,一个客户机可以是一台是一台PC机或图形工作站;一个服务器可以是一台高档工作站,也可以是一个主机或图形工作站;一个服务器可以是一台高档工作站,也可以是一个主机系统,不同
15、厂商提供的服务器可以很好共处。机系统,不同厂商提供的服务器可以很好共处。客户机客户机/服务器模式最典型的应用就是数据库技术。在一个客户机服务器模式最典型的应用就是数据库技术。在一个客户机/服务器数据库系统服务器数据库系统中,应用被分割成两部分,数据库引用程序运行在中,应用被分割成两部分,数据库引用程序运行在PC机上(称作前端系统或前机上(称作前端系统或前台),负责用户界面和台),负责用户界面和I/O处理;处理;DBMS部分(负责数据处理和硬盘存取)运行在部分(负责数据处理和硬盘存取)运行在服务器上(称作后端系统或后台)。服务器上(称作后端系统或后台)。机械工业出版社机械工业出版社117.2客户
16、机客户机/服务器模式的体系结构服务器模式的体系结构 4.多服务器处理系统多服务器处理系统在多服务器系统中,用户从本地服务器请求数据;如果本地服务器发现本地在多服务器系统中,用户从本地服务器请求数据;如果本地服务器发现本地没有需要的数据,就通过没有需要的数据,就通过LAN或或WAN 向其他服务器发出请求,通过向其他服务器发出请求,通过“服服务器对服务器的对话务器对服务器的对话”处理数据,最后将数据返回给用户。整个过程中,处理数据,最后将数据返回给用户。整个过程中,除了响应有一点延迟感觉,用户并不知道数据来自其他系统,全部服务除了响应有一点延迟感觉,用户并不知道数据来自其他系统,全部服务器对服务器
17、间的数据处理细节对客户机系统透明。器对服务器间的数据处理细节对客户机系统透明。机械工业出版社机械工业出版社127.2客户机客户机/服务器模式的体系结构服务器模式的体系结构 5.对等处理系统对等处理系统对等处理系统被认为是客户机对等处理系统被认为是客户机/服务器系统的最终归宿,是协作式分布式处服务器系统的最终归宿,是协作式分布式处理的极限。发展到对等服务阶段时,请求服务的客户机和处理请求的服理的极限。发展到对等服务阶段时,请求服务的客户机和处理请求的服务器将脱离主从结构,实现完全等同。即在网络上每个站点既是客户机务器将脱离主从结构,实现完全等同。即在网络上每个站点既是客户机也是服务器。在对等系统
18、中每个站点都是平等的。进一步说,每个站点也是服务器。在对等系统中每个站点都是平等的。进一步说,每个站点的计算机都要负责对自己资源的管理和访问,并有对任何其他站点计算的计算机都要负责对自己资源的管理和访问,并有对任何其他站点计算机上的资源的同等访问权。机上的资源的同等访问权。机械工业出版社机械工业出版社137.3 客户机客户机/服务器模式的特性和优点服务器模式的特性和优点7.3.1、客户机、客户机/服务器模式的特性服务器模式的特性 采用客户机采用客户机/服务器模式结构的系统大都具有如下特性:服务器模式结构的系统大都具有如下特性:1.客户机客户机/服务器是两个不同的进程。服务器进程是服务的提供者。
19、客户机进程是服服务器是两个不同的进程。服务器进程是服务的提供者。客户机进程是服务的消费者。务的消费者。2.共享资源:一个服务器可以在同一时刻对许多客户机进行服务,并且协调他们对共享资源:一个服务器可以在同一时刻对许多客户机进行服务,并且协调他们对于共享资源的访问。于共享资源的访问。3.不对称协议:在客户机与服务器之间存在一种多对一的主从关系。一般来说,客不对称协议:在客户机与服务器之间存在一种多对一的主从关系。一般来说,客户通过请求与服务器主动对话,而服务器则是被动地等待客户请求。户通过请求与服务器主动对话,而服务器则是被动地等待客户请求。4.定位透明性:服务器是一个进程,它可以与客户机位于同
20、一台机器上,也可以位定位透明性:服务器是一个进程,它可以与客户机位于同一台机器上,也可以位于网络上的另一个机器上。于网络上的另一个机器上。5.混合与匹配:理想的客户机混合与匹配:理想的客户机/服务器软件应该独立于硬件或操作系统软件平台,应服务器软件应该独立于硬件或操作系统软件平台,应该能够混合与匹配客户机和服务器平台。该能够混合与匹配客户机和服务器平台。6.基于消息的交换:客户机和服务器是一对耦合的系统,它们通过消息传递机制互基于消息的交换:客户机和服务器是一对耦合的系统,它们通过消息传递机制互相协作。消息是服务请求与响应的媒介。相协作。消息是服务请求与响应的媒介。7.服务封装:通过一个消息告
21、诉服务器所请求的服务,由服务器来决定如何完成这服务封装:通过一个消息告诉服务器所请求的服务,由服务器来决定如何完成这项作业。只要发布的消息接口没有变化,服务器的版本升级对客户机没有任何影项作业。只要发布的消息接口没有变化,服务器的版本升级对客户机没有任何影响。响。8.可扩展性:客户机可扩展性:客户机/服务器系统可以水平或垂直扩展。服务器系统可以水平或垂直扩展。9.完整性:对集中式客户机完整性:对集中式客户机/服务器处理环境,服务器代码和服务器数据是集中维护服务器处理环境,服务器代码和服务器数据是集中维护的,它带来了较低的维护开销,并保持了数据的完整性和独立性。的,它带来了较低的维护开销,并保持
22、了数据的完整性和独立性。机械工业出版社机械工业出版社147.3 客户机客户机/服务器模式的特性和优点服务器模式的特性和优点7.3.2、客户机、客户机/服务器模式的优点与不足服务器模式的优点与不足优点:优点:1.客户机客户机/服务器模式提高了投资效率,用户能够从自己的服务器模式提高了投资效率,用户能够从自己的PC访问和操纵大访问和操纵大型计算机上数据库中的数据。同时,使用型计算机上数据库中的数据。同时,使用PC和工作站可以提供过去大型和工作站可以提供过去大型机才具有的计算功能,而且只有大型机价格的几分之一。机才具有的计算功能,而且只有大型机价格的几分之一。2.客户机客户机/服务器模式使得处理和被
23、处理的数据更加接近(客户机服务器模式使得处理和被处理的数据更加接近(客户机/服务器结服务器结构是一种分布式处理)。所以,网络开销与响应时间极大降低,从而减构是一种分布式处理)。所以,网络开销与响应时间极大降低,从而减少对网络带宽和成本的需求。少对网络带宽和成本的需求。3.客户机客户机/服务器模式改变了由服务器模式改变了由“哑哑”终端提供的单调的屏幕用户界面,而终端提供的单调的屏幕用户界面,而代之以交互性更好的图形用户界面的代之以交互性更好的图形用户界面的PC。4.客户机客户机/服务器模式支持和倡导标准化和开放系统。服务器模式支持和倡导标准化和开放系统。5.客户机客户机/服务器模式能使多个用户共
24、享硬件资源,如打印机、扫描仪、传服务器模式能使多个用户共享硬件资源,如打印机、扫描仪、传真机等。真机等。机械工业出版社机械工业出版社157.3 客户机客户机/服务器模式的特性和优点服务器模式的特性和优点缺点:缺点:1.在集中式客户机在集中式客户机/服务器环境下(目前流行的方式),如果应服务器环境下(目前流行的方式),如果应用逻辑的主要部分移动到服务器上,服务器就会像传统主从用逻辑的主要部分移动到服务器上,服务器就会像传统主从结构的主机一样成为瓶颈,随着用户数的增加,资源有限的结构的主机一样成为瓶颈,随着用户数的增加,资源有限的服务器可能不堪负荷。服务器可能不堪负荷。2.多服务器应用系统的设计和
25、实现,比集中式系统复杂得多。多服务器应用系统的设计和实现,比集中式系统复杂得多。无论应用开发、运行环境维护,还是管理这些多服务器环境无论应用开发、运行环境维护,还是管理这些多服务器环境的工具,都比较复杂。的工具,都比较复杂。3.还有一些对客户机还有一些对客户机/服务器模式的认识也是有待纠正。例如,服务器模式的认识也是有待纠正。例如,有人认为客户机有人认为客户机/服务器模式要求非专业的用户成为专业的软服务器模式要求非专业的用户成为专业的软件开发者;另外一些人认为客户机件开发者;另外一些人认为客户机/服务器最终将把大型和小服务器最终将把大型和小型机赶出历史舞台等等,其实都有些言过其实。型机赶出历史
26、舞台等等,其实都有些言过其实。机械工业出版社机械工业出版社167.4 构建客户机构建客户机/服务器系统服务器系统7.4.1 客户机客户机/服务器系统开发工具服务器系统开发工具1CASE工具工具 CASE代表代表“计算机辅助软件工程计算机辅助软件工程”,意指帮助完成创建计,意指帮助完成创建计算机程序任务的计算机程序。算机程序任务的计算机程序。下面列出了一些较流行的下面列出了一些较流行的CASE工具:工具:Easy CASE,来自,来自 Evergreen CASE Tools;Erwin/DBF 和和Erwin/ERX,来自,来自Logic Works;Silver Run,来自,来自Compu
27、ter Systems Advisors;Power Designer,来自,来自Powersoft公司,该公司已并入公司,该公司已并入Sybase公司;公司;ORACLE*CASE,来自,来自Oracle。CASE工具的焦点在于帮助系统设计人员进行数据建模(创工具的焦点在于帮助系统设计人员进行数据建模(创建用于设计计算机系统的各种图表)。例如,建用于设计计算机系统的各种图表)。例如,Silver Run 提提供了创建数据流图(供了创建数据流图(DFD)、实体)、实体-关系图(关系图(ERD)和关系数)和关系数据库模式图的模块。据库模式图的模块。机械工业出版社机械工业出版社177.4 构建客户
28、机构建客户机/服务器系统服务器系统2.可视化程序设计工具可视化程序设计工具 可视化程序设计工具是一种完整的程序设计环境,使得程序可视化程序设计工具是一种完整的程序设计环境,使得程序员能够通过把按钮、文本框、菜单等(称为员能够通过把按钮、文本框、菜单等(称为“控制控制”)屏幕元)屏幕元素组装到空白的素组装到空白的“窗体窗体”(Form)上,然后填写与各控制相关)上,然后填写与各控制相关联的处理过程细节,从而快速构造一个联的处理过程细节,从而快速构造一个GUI程序。程序。有许多种可视化程序设计产品。尽管有些产品提供了较高级有许多种可视化程序设计产品。尽管有些产品提供了较高级的特色功能,但它们的工作
29、方式都是相似的。下面就是一些的特色功能,但它们的工作方式都是相似的。下面就是一些常见产品:常见产品:(1)Visual Basic(VB)(2)Visual Age Team for OS/2(IBM)(3)Delphi(Borland)(4)PowerBuilder3内核程序设计工具内核程序设计工具4测试工具测试工具5版本控制工具版本控制工具机械工业出版社机械工业出版社187.4 构建客户机构建客户机/服务器系统服务器系统7.4.2、客户机、客户机/服务器模式应用系统的开发特点服务器模式应用系统的开发特点应用系统的开发指的是在计算机上一个应用系统,包括系统规应用系统的开发指的是在计算机上一个应用系统,包括系统规划、分析、设计、实施的全过程。传统的大型计算机系统有划、分析、设计、实施的全过程。传统的大型计算机系统有很好的方法。这些方法也可以被应用于很好的方法。这些方法也可以被应用于PC软件项目软件项目。本节并不讨论关于应用系统开发的所有问题,只是讨论一下在本节并不讨论关于应用系统开发的所有问题,只是讨论一下在基于客户机基于客户机/服务器模式应用系统的开发中的一些有用的技术服务器模式应用系统的开发中的一些有用的技术和方法。和方法。1用户界面设计用户界面设计2业务规则设计业务规则设计3可视化程序设计可视化程序设计机械工业出版社机械工业出版社19