1、周周韡韡(zhouwbjcn.ibm)zhouwbjcn.ibm)1.1.客户机客户机/服务器计算模式服务器计算模式2.2.客户机客户机/服务器模式的定位服务器模式的定位3.3.客户机客户机/服务器模式的特性和优缺点服务器模式的特性和优缺点4.4.客户机客户机/服务器模式的远景展望服务器模式的远景展望5.5.分布式数据与分布式访问分布式数据与分布式访问6.6.创建基于客户机创建基于客户机/服务器模式的数据库系统服务器模式的数据库系统分布式数据库与客户机分布式数据库与客户机/服务器模式服务器模式 第第8章章 概念 客户机/服务器概念最早用于软件体系结构 提出请求的应用程序 解答请求的服务程序 协
2、作式处理方式 客户机和服务器都参与一个应用程序的处理 软件成分相互协作完成特定应用功能 请求/服务模式 硬件资源提供软件成分相互协作的设施 客户机/服务器模式1.1 客户机客户机/服务器模式概念服务器模式概念1 1 客户机客户机/服务器计算模式服务器计算模式客户机客户机客户机 网络应用服务器通信服务器打印服务器文件服务器数据库服务器请求响应响应请求客户机/服务器模式1.1 客户机客户机/服务器模式概念服务器模式概念1 1 客户机客户机/服务器计算模式服务器计算模式 C/S环境下应用成分的分布环境下应用成分的分布 一个典型的数据库应用程序可分解为4部分 界面表示逻辑:与用户交互的代码,GUI 业
3、务处理逻辑:使用输入数据来完成业务处理和规则的代码,使用3GL或4GL编写的 数据处理逻辑:负责处理数据的代码,一般使用SQL语言或者嵌入式SQL语言编写 数据库管理:由DBMS完成实际数据处理的程序 通常放置方法 界面表示逻辑和业务处理逻辑放到客户端 数据处理逻辑和数据库管理功能放到服务端1.2 C/S环境下应用成分的分布和开放性环境下应用成分的分布和开放性1 1 客户机客户机/服务器计算模式服务器计算模式应用程序界面表示逻辑业务处理逻辑数据处理逻辑数据库管理GUI3GL4GLSQLORACLESYBASEDB2DB组成数据库应用程序的四个成分1.2 C/S环境下应用成分的分布和开放性环境下
4、应用成分的分布和开放性1 1 客户机客户机/服务器计算模式服务器计算模式1.2 C/S环境下应用成分的分布和开放性环境下应用成分的分布和开放性1 1 客户机客户机/服务器计算模式服务器计算模式数据处理 逻辑界面表示 逻辑业务处理 逻辑数据管理 功能Client应用程序DBMSServer支持C/S结构的DBMS 支持和不支持支持和不支持C/S结构的结构的DBMS情形情形 不支持C/S结构的DBMS1.2 C/S环境下应用成分的分布和开放性环境下应用成分的分布和开放性1 1 客户机客户机/服务器计算模式服务器计算模式用户客户机应用系统客户机数据库API连接软件网络协议客户机网络协议连接软件服务器
5、软件服务器操作系统服务器数据库 SQL结果 网络 客户机客户机/服务器模式的内部结构服务器模式的内部结构用户客户机用户客户机用户客户机文件服务打印服务数据库服务文件打印机DB客户机中间件服务器客户机/服务器模式体系结构示意图1.3 C/S模式的体系结构模式的体系结构1 1 客户机客户机/服务器计算模式服务器计算模式 服务器 提供高速大容量的存储能力,强大的数据处理和管理能力,运行多个进程能力 分类 文件服务器 数据库服务器 事务服务器 文档服务器 其他服务器1.3 C/S模式的体系结构模式的体系结构1 1 客户机客户机/服务器计算模式服务器计算模式文件GUI应用程序文件服务器客户机服务器文件服
6、务器1.3 C/S模式的体系结构模式的体系结构1 1 客户机客户机/服务器计算模式服务器计算模式GUI应用程序数据库服务器客户机服务器数据SQL命令DB数据库服务器1.3 C/S模式的体系结构模式的体系结构1 1 客户机客户机/服务器计算模式服务器计算模式GUI应用程序应用程序事务客户机服务器数据应用程序专用事务DB事务处理服务器数据库服务器1.3 C/S模式的体系结构模式的体系结构1 1 客户机客户机/服务器计算模式服务器计算模式 客户机 完成界面表示和一些业务逻辑功能 客户机类型 非图形化用户接口:条形码,扫描器,传真机,仿真终端等 图形化(GUI)用户接口:基于Windows的软件和设备
7、 面向对象接口(OOI):可视化、多媒体处理软件和设备 客户机软件类型 公共应用程序:字处理,报表编制,图形软件,项目管理软件等 数据库前端软件:Oracel PL/SQL plus 应用生成和开发软件:PowerBuilder,Dephi,VisualC+,Visual Basic等 中间件 泛指客户机与服务器之间的软件 数据库连接中间件,事务处理中间件,组件中间件,对象中间件等1.3 C/S模式的体系结构模式的体系结构1 1 客户机客户机/服务器计算模式服务器计算模式 主机处理系统 所有程序在一个主机上运行 优点 集中式,安全性和海量数据存储设备管理能力 支持大量并发用户,IBM大型机上数
8、据库支持1000多用户 缺点 系统采购和维护费用大 特殊的支持设施等2.1 计算环境演变分析计算环境演变分析2 2 客户机客户机/服务器模式的定位服务器模式的定位ModemModemHost CPUDBMSAPPsDB主机远程终端本地终端主机处理环境2.1 计算环境演变分析计算环境演变分析2 2 客户机客户机/服务器模式的定位服务器模式的定位 文件处理系统 应用处理(包括数据处理)都发生在PC工作站 服务器仅从硬盘查询所需要的文件通过网络发送给用户 缺点 用户计算能力局限于本地PC工作站 多用户共享文件时,仍然需要分别发送到每个PC 只满足小规模工作组应用需求2.1 计算环境演变分析计算环境演
9、变分析2 2 客户机客户机/服务器模式的定位服务器模式的定位LANAPPsPCAPPsPC工作站NOS文件服务器打印机修改过的文件送回服务器数据文件送给PC文件共享处理环境2.1 计算环境演变分析计算环境演变分析2 2 客户机客户机/服务器模式的定位服务器模式的定位 C/S处理系统“恰到好处的规模”(rightsizing)Client/server将应用资源恰到好处地分配 降低了网络开销 典型应用是数据库技术 数据库应用程序运行在client上 DBMS部分应用在server上2.1 计算环境演变分析计算环境演变分析2 2 客户机客户机/服务器模式的定位服务器模式的定位LANAPPsPCAP
10、PsPCAPPsPCUNIXDBMS查询结果查询请求DB客户机/服务器处理环境服务器服务器客户机客户机2.1 计算环境演变分析计算环境演变分析2 2 客户机客户机/服务器模式的定位服务器模式的定位 多处理器服务系统 存在两个或两个以上服务器的C/S系统 如果本地server发现没有相关数据,通过“S对S的对话”向其他服务器发出请求 企业级大型应用平台2.1 计算环境演变分析计算环境演变分析2 2 客户机客户机/服务器模式的定位服务器模式的定位LAN/WANAPPsPC客户机APPsPCUNIXDBMS结果请求DB多服务器处理环境MVSDBMSDB网关/网桥NOS文件服务器远程访问2.1 计算环
11、境演变分析计算环境演变分析2 2 客户机客户机/服务器模式的定位服务器模式的定位 对等处理系统 C/S系统的最终归宿,是协作式分布式处理的极限 站点既是客户机又是服务器 站点要负责对自己资源的管理和访问,又有对任何其他站点上资源的同等访问权2.1 计算环境演变分析计算环境演变分析2 2 客户机客户机/服务器模式的定位服务器模式的定位APPsAPPsAPPsAPPsDBDBDBDB 对等处理环境2.1 计算环境演变分析计算环境演变分析2 2 客户机客户机/服务器模式的定位服务器模式的定位 C/S模式系统是介于集中式与分布式之间 集中式C/S处理环境 数据集中,处理分布 客户请求,服务器响应的协作
12、方式 多服务器C/S处理环境 数据与处理都分布 一个应用可涉及多个服务器数据 一个服务器数据可以被多个客户机访问 对等C/S处理环境 数据与处理都分布 站点可以访问其他站点数据(全局应用),也可以访问本地数据(本地应用)2.2 客户机客户机/服务器模式的定位服务器模式的定位2 2 客户机客户机/服务器模式的定位服务器模式的定位 有多个数据库服务器的C/S处理环境 与分布式数据库系统相同的问题 站点自治性,透明性 数据独立 数据完整性2.2 客户机客户机/服务器模式的定位服务器模式的定位2 2 客户机客户机/服务器模式的定位服务器模式的定位网络DB数据库服务器客户机客户机客户机用户客户机客户机客
13、户机用户DB数据库服务器DB数据库服务器客户机客户机客户机用户每个站点是一个单数据库服务器Client/Server结构的DDBS2.2 客户机客户机/服务器模式的定位服务器模式的定位2 2 客户机客户机/服务器模式的定位服务器模式的定位 按功能划分 服务器是服务的提供者,客户机是消费者 共享资源 一个服务器可以在同一时刻对许多客户端提供服务,并且可以协调他们对于共享资源的访问 不对称协议 客户机主动请求服务,服务器被动等待请求 定位透明性 C/S软件在客户机方屏蔽服务器地址 混合与匹配 C/S软件独立于硬件或OS3.1 客户机客户机/服务器模式的特性服务器模式的特性3 3 客户机客户机/服务
14、器模式的特性和优缺点服务器模式的特性和优缺点 基于消息的交换 消息式服务,请求与响应的媒介 服务封装 服务器决定如何完成服务请求消息,消息接口不变,升级对客户没有影响 可扩展性 水平扩展:添加或移去工作站 垂直扩展:移植到更大更快的服务器或多服务器 完整性 集中式C/S处理环境中,server代码和server数据是集中维护的,带来的开销很少,保持了数据的完整性和独立性3.1 客户机客户机/服务器模式的特性服务器模式的特性3 3 客户机客户机/服务器模式的特性和优缺点服务器模式的特性和优缺点 优点 提高了投资效率 使处理和被处理的数据更接近,减少了网络带宽和成本的需求 具有图形用户界面的PC
15、支持和倡导标准化和开放系统 多个用户共享硬件资源3.2 客户机客户机/服务器模式的优缺点服务器模式的优缺点3 3 客户机客户机/服务器模式的特性和优缺点服务器模式的特性和优缺点 不足之处 在集中式C/S环境,如果应用逻辑的主要部分移到服务器上,服务器将成为瓶颈 多服务器应用系统的开发和设计复杂3.2 客户机客户机/服务器模式的优缺点服务器模式的优缺点3 3 客户机客户机/服务器模式的特性和优缺点服务器模式的特性和优缺点 当前的主要模式 C/S两层结构 肥客户机:所有的表示逻辑和应用逻辑放到客户机 瘦服务器:只负责响应用户请求,全局数据的访问和管理 B/S三层结构 数据层 功能层 表示层4.1
16、当前客户机当前客户机/服务器模式服务器模式4 4 客户机客户机/服务器模式的远景展望服务器模式的远景展望浏览器浏览器浏览器Web服务器DB数据库服务器产品实例NetscapeNavigator,MacintoshMicrosoft IIS Windows 2000OracleUNIXSQL 关系Web页面客户代码数据功 能HTTP客户客户端脚本视图实例化HTTP服务器服务器端脚本 视图建立、检索、更新和删除SQL处理 数据库管理 三层客户机/服务器模式结构及各层功能HTTP请求响应ODBC ADO OLE/DB JDBC 本地调用4.1 当前客户机当前客户机/服务器模式服务器模式4 4 客户机
17、客户机/服务器模式的远景展望服务器模式的远景展望4.2 多层客户机多层客户机/服务器模式结构服务器模式结构4 4 客户机客户机/服务器模式的远景展望服务器模式的远景展望浏览器浏览器浏览器Web服务器视图处理器业务规则处理器DB数据库服务器(a)多处理器用于视图和规则处理DB1数据库服务器1(b)多处理器用于分布式处理DB2数据库服务器2浏览器浏览器浏览器Web服务器分布式处理器4.3 客户机客户机/服务器模式的展望服务器模式的展望4 4 客户机客户机/服务器模式的远景展望服务器模式的远景展望 展望 服务器将更加强大,现在就可以是一台台式机,以后会更强大 服务器更加可靠和健壮,处理器和磁盘的成本
18、将大幅下降 安全性更高,加密解密技术进一步发展 高带宽网络的发展,可以使得多层次结构的应用更加普及 从集中到分布数据的转移 将关键数据的多个副本置于不同站点,提高数据的可用性,避免“单站点失败”现象 高效的数据访问,改进数据管理性能 容易增加应用程序,用户数目和扩大规模 数据放在其产生和频繁使用位置,减少传输,提高效率5.1 从集中式到分布式的转移从集中式到分布式的转移5 5 分布式数据与分布式访问分布式数据与分布式访问 数据分布基本形式 复制数据(Replicated Data)子集数据(Subset Data)重新组织的数据(Reorganized Data)分区数据(Partitione
19、d Data)独立模式数据(Separate_Schema Data)不相容数据(Incompatible Data)5.2 数据分布的基本形式数据分布的基本形式5 5 分布式数据与分布式访问分布式数据与分布式访问网络DBx主机DBx1DBx2x1和x2为x的副本 复制的数据S1S25.2 数据分布的基本形式数据分布的基本形式5 5 分布式数据与分布式访问分布式数据与分布式访问网络网络DBABC主机DBADBC子集数据S1S3DBBS25.2 数据分布的基本形式数据分布的基本形式5 5 分布式数据与分布式访问分布式数据与分布式访问网络DBR主机DBA重新组织的数据S1DBBS2数据R是由数据A
20、和B经过重新组织而获得的5.2 数据分布的基本形式数据分布的基本形式5 5 分布式数据与分布式访问分布式数据与分布式访问网络地区A的记录主机地区B的记录分区数据地区C的记录各地区的记录具有相同模式主机主机5.2 数据分布的基本形式数据分布的基本形式5 5 分布式数据与分布式访问分布式数据与分布式访问网络生产数据财务数据独立模式数据生产主机财务主机营销数据营销主机5.2 数据分布的基本形式数据分布的基本形式5 5 分布式数据与分布式访问分布式数据与分布式访问网络网络公司A的记录主机公司B的记录不相容数据公司C的记录各公司的数据存在不相容主机主机5.2 数据分布的基本形式数据分布的基本形式5 5
21、分布式数据与分布式访问分布式数据与分布式访问 数据分布技术 人工抽取 快照 复制 分片 数据分布分析5.3 数据分布的技术数据分布的技术5 5 分布式数据与分布式访问分布式数据与分布式访问SAVINGCUSTOMEREXCHANGERATESAVINGCUSTOMEREXCHANGERATESAVINGCUSTOMEREXCHANGERATE网络网络总行分行1分行2分布式数据的银行应用系统分行到总行抽取数据 数据分布分析 是一种统计方法 根据应用需求决定那些资源需要分布及存放位置 例子:银行应用系统 客户表存在中央银行(CB)站点,分行(PB)存有部分数据复制 假设CB站点有10000条记录,
22、每天读2000次,更新500次 PB站点有1000条记录,每天读1000次,更新100次5.3 数据分布的技术数据分布的技术5 5 分布式数据与分布式访问分布式数据与分布式访问10001002000500READUPDATEPBCB站点操作11002500600NYYYNY123PBCB网络开销数据分布站点配制方法分布式数据库位置矩阵5.3 数据分布的技术数据分布的技术5 5 分布式数据与分布式访问分布式数据与分布式访问 该例子分析方法结论 分布式数据的位置取决于逻辑数据和处理(读和更新)模式,数量等特征 数据分布是降低整个分布式系统开销的有效措施5.3 数据分布的技术数据分布的技术5 5 分
23、布式数据与分布式访问分布式数据与分布式访问 远程请求 远程事务 分布式事务 分布式请求5.4 分布式数据的访问分布式数据的访问5 5 分布式数据与分布式访问分布式数据与分布式访问 远程请求 只涉及单个远程服务器的单个请求Select *From Server1.BankDB.Customer Where Server1.BankDB.Customer.City =Beijing 5.4 分布式数据的访问分布式数据的访问5 5 分布式数据与分布式访问分布式数据与分布式访问SQL语句CLIENT PBSERVER1CUSTOMER 远程数据请求5.4 分布式数据的访问分布式数据的访问5 5 分布式
24、数据与分布式访问分布式数据与分布式访问 远程事务 允许一个事务中包含多个数据访问请求,这些请求都引用同一个远程服务器站点上的数据Begin Work Select *From Server1.BankDB.Customer Where Server1.BankDB.Customer.City =Beijing Update Server1.BankDB.Branch Set Posted_ind=YesCommit Work5.4 分布式数据的访问分布式数据的访问5 5 分布式数据与分布式访问分布式数据与分布式访问SQL语句1CLIENT B1SERVER1CUSTOMER 远程事务处理分 行
25、SQL语句25.4 分布式数据的访问分布式数据的访问5 5 分布式数据与分布式访问分布式数据与分布式访问 分布式事务 一个事务包含多个数据请求,每个请求只能访问单个服务器Begin Work Select *From ServerB1.BankDB.Employee Where ServerB1.BankDB.Employee.Edlevel=MBA Select *From ServerM.BankDB.Empl_MED Where ServerM.BankDB.Empl_MED.Branch=PB Commit Work5.4 分布式数据的访问分布式数据的访问5 5 分布式数据与分布式访问
26、分布式数据与分布式访问SQL语句1SERVER MMEDICAL 分布式事务处理SERVER B1CUSTOMERSQL语句2中央CLIENTBEGIN WORK COMMIT WORK5.4 分布式数据的访问分布式数据的访问5 5 分布式数据与分布式访问分布式数据与分布式访问 分布式请求 一个事务包含多个数据请求,每个请求都可以引用驻留于多个服务器站点数据Begin Work Select *From ServerB1.BankDB.Employee B1,ServerM.BankDB.Empl_MED M Where B1.Empl_ID=M.Empl_ID AND B1.Edlevel
27、=MBA Update Server1.BankDB.Branch Set Posted_ind=Yes Where Server1.BankDB.Branch=B1Commit Work5.4 分布式数据的访问分布式数据的访问5 5 分布式数据与分布式访问分布式数据与分布式访问SQL语句1SERVER MEMPLOYEE分布式数据请求SERVER B1SQL语句2CLIENTBEGIN WORK COMMIT WORKEMPL_MEDBRANCHSERVER 1 CASE工具 ER Studio,PowerDesigner,Rational Rose,Visio等 可视化程序设计工具 VB,
28、VC+Visual Age,Eclipse,JBuilder Dephi,Powerbuilder 硬核程序设计工具 C,C+,Cobol 套装应用程序 MS Office,PerfectOffice,SmartOffice 测试工具 Softbridge,SQA 版本控制工具 SourceSafe,CMVC,Delta等6.1 创建创建C/SC/S系统自动化设计工具系统自动化设计工具6 6 创建基于创建基于C/SC/S模式的数据库系统模式的数据库系统6.2 异构数据源访问接口和方法异构数据源访问接口和方法6 6 创建基于创建基于C/SC/S模式的数据库系统模式的数据库系统 ODBC的作用浏览
29、器浏览器浏览器Web服务器服务器数据库服务器本地接口ODBC关系数据库Oracle,IBM Db2,Sybase,SQLServer,Access非关系数据库文件处理器电子邮件图象、视频、其他文档等6.2 异构数据源访问接口和方法异构数据源访问接口和方法6 6 创建基于创建基于C/SC/S模式的数据库系统模式的数据库系统 驱动程序驱动程序管理器管理器连接语句结果集结果集元数据可调用语句预备语句 实用程序MySQL驱动程序驱动程序OracleL驱动程序驱动程序JDBC-ODBC桥桥ODBC驱动程序驱动程序MySQL数据库Oracle数据库Oracle数据库SQL数据库 JDBC的组成部件6.3
30、基于基于B/SB/S模式系统的模式系统的MicrosoftMicrosoft实现方案实现方案6 6 创建基于创建基于C/SC/S模式的数据库系统模式的数据库系统 浏览器Web服务器服务器DB数据库服务器软件产品Inernet explorerIIS,ASP,ISAPI,CGI,Java,C+Oracle,Sybase,IBM DB2,SQLServerSQL 关系Web页面客户请求结果数据操作系统Windows 2000 Windows XPWindows 2019 Windows 2000 基于B/S模式系统的Microsoft实现方案HTML,DHTML,XMLODBC ADO OLE/D
31、B JDBCWindows 2019 Windows 2000 1985年起提供用于C/S和S/S的SQL*net 分布式体系结构组成 SQL*Net SQL*Connect ORACLE Server7.1 起源和组成起源和组成7 Orace7 Orace支持客户机支持客户机/服务器模式服务器模式 ORACLE在同构和异构网络环境中都支持C/S和S/S结构 C/S连接时,通过连接描述符实现 S/S之间的连接,或数据访问操作可以用DB链路进行.Create Database Link Boston Connect to Scott Identified By Tigger Using Educ
32、ationDB;查询时用Boston存取远程Scott/Tigger用户的EMP表:Select*From EMPBoston;7.2 Oracle Oracle分布式系统功能分布式系统功能7 Orace7 Orace支持客户机支持客户机/服务器模式服务器模式UPISQL*NetTransparent Network SubstrateOracle Protocol AdapterNetwork SoftwareOPISQL*NetTransparentNetwork SubstrateOracle ProtocolAdapterNetwork SoftwareNetwork LinkClie
33、ntServerClient ApplicationOracle Server7.3 C/S C/S会话的组成会话的组成7 Orace7 Orace支持客户机支持客户机/服务器模式服务器模式Oracle ServerSQL*NetTransparent Network SubstrateOracle Protocol AdapterNetwork SoftwareOracle ServerSQL*NetTransparentNetwork SubstrateOracle ProtocolAdapterNetwork SoftwareNetwork LinkServerServerOPIOPI7
34、.4 S/S S/S会话的组成会话的组成7 Orace7 Orace支持客户机支持客户机/服务器模式服务器模式 手工复制 Export/Import Create Table 命令 Copy命令:SQL*Plus中使用 快照 触发子复制 同步复制 例:本地DB的一个EMP表,需要在sf数据库链所指定的远程DB中复制改EMP表.7.5 表复制策略表复制策略7 Orace7 Orace支持客户机支持客户机/服务器模式服务器模式Create Trigger Emp-Replica Before Insert or Update on Emp For Each Row Declare Begin If
35、 Inserting Then If:new.flag is Null Then Insert Into Empsf Values(:new.empno,:new,ename,.,B):new.flag=A Endif Else /*Updating*/If :new.flag=:old.flag Then Update Empsf Set ename=:new.ename,.Flag=:new.empno Where empno=:new.empno;If :old.flag=A Then :new.flag=B Else :new.flag=A Endif Endif EndifEnd 触发子复制表总总 结结客户机客户机/服务器计算模式服务器计算模式客户机客户机/服务器模式的定位服务器模式的定位客户机客户机/服务器模式的特性和优缺点服务器模式的特性和优缺点客户机客户机/服务器模式的远景展望服务器模式的远景展望分布式数据与分布式访问分布式数据与分布式访问创建基于客户机创建基于客户机/服务器模式的数据库系统服务器模式的数据库系统