Vol.21 No.3 陈志刚等:三层链式客户/服务模型及其分析 ·309。 Client 1Client n Client hl Client hn 中1个数据库服务器(第3层)的单一数据操作, 个 每个中间应用服务器负责分析与其物理连接的 ¥ 所有客户机的数据操作请求,并调用相应的中 LAN.WAN LAN,WAN Internet OR Intranet 间应用服务器提供服务,则称这种3层客户机 Internet OR Intranet /服务器计算模型为3层客户/服务链式模型. Applicantion Server Applicantion Server h 3分析与比较 RDBMS 1 RDBMS m “3层层次模型”与“3层链式模型”从外观 和物理连接上来看几乎是一模一样的.它们之 图3规模扩大后的3层客户/服务计算模型 间的本质区别是:3层客户/服务层次模型是 定义1在3层客户机/服务器计算模型 面向客户机划分中间应用服务器的:而3层客 中,如果每个中间应用服务器(第2层)负责处 户/服务链式模型是面向客户机所提出的数据 理且仅处理物理上它所连接的所有客户机(第 操作请求划分中间应用服务器的.也就是说由 1层)对系统中所有数据库服务器(第3层)的操 面向客户机方式变成了面向任务方式. 作,则称这种3层客户机/服务器计算模型为 3.1客户端的任务 3层客户/服务层次模型. 一般而言,对于前面提到的一个有k个用 事实上,用户对数据库的操作是频繁的,交 户、h个中间应用服务器(每个中间应用服务器 义进行的.由于SQL数据库系统在实现时总是 连接n个用户,为了简单,设k=hn)、m个数据库 为每个读写的数据库表(Table)和视图(View) 服务器的系统,如果仅从对数据库的操作来看, 建立读写缓冲区,以加快存取速度,而受存贮容 一个应用(Application)分为客户端(Client)、中 量的限制,处于内存中的表和视图个数及其数 间应用服务器端(Middle)、数据库服务器端 据量大小总是有限的,这必然导致数据库系统 (Server)3部分.即: 中数据库表和视图不断地在内存和外存之间进 Application =Client U Middle U Server. 行交换. 因为客户端不直接操作数据库,所以,Client 如果能相对集中地让每个应用服务器只处 nServer=φ. 理对数据库服务器的单一数据操作,则缓存中 客户端Client等于h个用户子集之和:而 所需建立的数据库表和视图数将大为减少,从 每个用户子集由n个用户组成: 而可大大减少表和视图在内存中的交换而显著 Client i=User-aU…UUser-wrn,其中, 地提高处理速度,因此需要进一步改进3层模 i=1,2,…,h. 型,将单纯的层次结构转换为中间链式结构,构 设用户Useri对数据库系统j的操作有l 成一种新的模型,称之为“3层链式CS模型” 种,即:OP={OP,OP,,OP}, (图4所示). 则全体客户对所有数据库系统的访问为: 定义2在3层客户机/服务器计算模型 OP={OP|i=1,2,…,k;j=1,2,…,m;x= 中,如果每个中间应用服务器(第2层)负责且 1,2,…,1} 仅负责处理系统中所有客户机(第1层)对系统 3.2层次模型中间层任务 整个中间层由h个中间应用服务器组成, Client Client 2 Client k 故:Middle=M,UMU…UM, 其中,M为第i个中间应用服务器对数据库的 操作功能集, 中间服务器1 中间服务器h 如果单从数据操作来分析有: 每个中间服务器 M=Client 负责全体对数库 =Useru-ymUU Userun-Irmn 的某一方面操作 {OPay=(i-1I)*+1,(i-1)*n+2,…,(i-1)*+n; 数据库服务器1 数据库服务器m z=1,2,…,m;x=1,2,…,1},所以, 图43层链式C/S模型 M.=Imn,Middle=Imnh Imk、 锐 陈志刚等 三层链式客户 服 务模型及其分析 一 巨 “ “ ’ ’ 冲 ,‘ ,“ ’ 中 个 数据 库服 务器 第 层 的单 一 数 据 操 作 , 每个 中间应 用服 务器 负责 分 析与其物理连 接 的 所 有 客 户 机 的数 据 操 作请 求 , 并 调 用 相 应 的 中 间应 用 服 务 器 提 供服 务 , 则 称 这种 层 客户 机 服 务器 计算模型 为 层 客 户 服务链式模型 图 规模扩大后的 层客户 服务计算模型 定义 在 层 客户机 服 务器 计 算模 型 中 , 如果每个 中间应用服 务器 第 层 负责处 理且仅处理物理上它所 连接 的所 有客 户 机 第 层 对 系统 中所有数据库服 务器 第 层 的操 作 , 则称这种 层 客户机 服 务器 计 算模型 为 层客户 服 务层 次模型 事实上 , 用户对数据库的操作是频繁 的 , 交 叉进行 的 由于 数据库系统在 实现 时 总是 为每个读 写 的数据 库表 几 和 视 图 场 建立读写缓冲区 , 以加快存取速度 , 而 受存贮容 量 的 限制 , 处 于 内存 中 的表和 视 图个数 及 其 数 据量大小 总是有限的 , 这必 然 导致数据 库 系统 中数据库表和视 图不 断地在 内存和 外存 之 间进 行交换 如果能相对集中地让每个应用服务器只 处 理对数据 库服务器 的单一数 据操作 , 则缓存 中 所需建立 的数据库表和 视 图数将大为减少 , 从 而可大大减少表和视 图在 内存 中的交换而显 著 地提 高 处 理速度 因此 需要进一 步改进 层 模 型 , 将单纯 的层次 结构转换为 中间链式 结构 , 构 成 一 种 新 的模 型 , 称之 为 ,’ 层 链式 模 型 ” 图 所 示 定 义 在 层 客户 机 服 务器计 算模型 中 , 如 果 每个 中间应用 服 务 器 第 层 负责且 仅 负责处 理 系统 中所有客户 机 第 层 对系统 卿 卿 还画乡 爪 全醉瓤 间月务器 负责全体对数库 的某一方面操作 竺吵吵囚 凶犷矍兰垫」 图 层链式 模型 分 析 与 比较 “ 层 层 次 模型 ” 与 “ 层 链 式 模 型 ” 从 外 观 和 物理 连 接 上 来看 几 乎 是 一 模 一 样 的 它们 之 间 的本质 区 别 是 层 客户 服 务层 次模型 是 面 向客 户 机划 分 中间 应 用 服 务 器 的 而 层 客 户 服 务链 式模 型 是 面 向客户 机所 提 出 的数据 操 作请 求 划 分 中 间应 用 服 务 器 的 也 就 是 说 由 面 向客 户 机 方 式 变 成 了面 向任 务方 式 客 户端的任 务 一 般 而 言 , 对 于 前面 提 到 的一 个 有 个 用 户 、 个 中间应 用 服 务器 每个 中间应 用 服 务器 连接 个 用 户 , 为 了简单 , 设 、 个数据 库 服 务器 的 系统 , 如 果仅 从 对数 据库 的操 作来看 , 一 个 应 用 分 为客 户 端 、 中 间应 用 服 务 器 端 记 、 数 据 库 服 务 器 端 部 分 即 因为客 户端不 直接操作数据库 , 所 以 , 二 沪 客户 端 等于 个用 户 子 集之 和 而 每个 用户 子 集 由 个 用 户 组 成 卜 、 , … 卜 , , 其 中 , , , … , 设 用 户 对 数 据 库 系统 的 操 作 有 种 , 即 。 奄 公 ,, 聆 ,, … , 卿 , 则全体 客 户 对 所 有 数据 库 系统 的访 问为 罗 二 , , … , , , … , , , … , 层 次 模型 中间层 任 务 整个 中间层 由 个 中 间应用 服 务器 组 成 , 故 二 拯 城 … , 其 中 , 斌 为 第 个 中 间应 用 服 务器对 数据 库 的 操作 功 能 集 如 果单 从 数 据 操 作来 分 析 有 似 二 卜 。 、 , 日 … , 一 , , 笼 即 沙 一 , 一 , … , 一 十 , , 二 , , , … , , 所 以 , 从 卜 , 卜