软件体系结构模式CS.ppt

上传人:本田雅阁 文档编号:2601966 上传时间:2019-04-16 格式:PPT 页数:25 大小:256.51KB
返回 下载 相关 举报
软件体系结构模式CS.ppt_第1页
第1页 / 共25页
软件体系结构模式CS.ppt_第2页
第2页 / 共25页
软件体系结构模式CS.ppt_第3页
第3页 / 共25页
软件体系结构模式CS.ppt_第4页
第4页 / 共25页
软件体系结构模式CS.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《软件体系结构模式CS.ppt》由会员分享,可在线阅读,更多相关《软件体系结构模式CS.ppt(25页珍藏版)》请在三一文库上搜索。

1、现代软件工程 九. 软件体系结构模式2,中国传媒大学计算机软件学院 研究生课程 主讲教师:扈文峰,1. 客户机/服务器结构(C/S),1.1 客户机/服务器概述 一个软件系统整体被分为两个逻辑上分离的部分,每一部分充当不同的角色、完成不同的功能。一般地,客户机为完成特定工作向服务器发出请求,服务器的任务是处理客户的请求并返回结果。 常见的例子有:操作系统的内核与外层之间、在通过网络连接的物理上分离的计算机之间等,都属于C/S结构。 随着网络特别是国际互联网的发展,允许应用程序分布在多台计算机上共同完成统一任务的C/S结构获得了极大的应用。由开始单纯的“客户界面/数据库服务器”的两层结构,逐渐分

2、离出应用逻辑服务器、WWW服务器等,形成更为复杂的多层C/S结构。即使在两个服务器的连接之间,也是一个充当客户机,一个充当服务器。参见下图。,客户界面,数据服务器,两层C/S结构,客户界面,数据服务器,应用逻辑服务器,三层C/S结构,客户界面,应用逻辑服务器,数据服务器,WWW服务器,四层C/S结构,1.2 客户机/服务器的结构分析,1.2.1 客户机/服务器的组成 客户机/服务器系统是两个独立的逻辑系统为完成特定任务而形成的单向协作关系。 客户机通常由以下部分组成: 用户交互界面(可选); 请求表达; 服务代理; 通信。,服务器通常由以下部分组成: 服务器接口; 调度管理; 事务处理计算;

3、共享资源管理; 通信。 客户机和服务器之间具有通讯连接机制,并遵循公共的通讯协议,包括: 请求的表达; 返回结果的表达; 连接关系和连接状态的表达。,1.2.2 各个组成部分的责任 客户的用户界面:负责接受用户的输入、提交用户的操作请求、显示操作请求返回的结果。 请求表达:把用户的操作请求转换为合乎通讯协议的表达形式。 服务代理:是服务器在客户方的代理部件,客户通过它提出请求、获得返回信息、掌握服务器的工作状态。 通信部件:负责建立和保持客户与服务器之间的连接。, 共享资源管理:是服务器内部维持的内部公共信息和其他资源,它为操作请求的实现提供信息的资源。 调度管理:根据客户的请求和内部的工作状

4、态,管理刻画请求,调配系统资源,快速高效地完成操作请求处理。 服务器接口:体现了服务器所能够对外提供的操作服务,是客户与服务器连接的桥梁。 事务处理计算:负责完成接口所描述的各种计算和处理。,1.2.3 客户机与服务器之间的通信 如果客户机和服务器都配置在同一台计算机上,客户机与服务器之间的通信连接可以通过消息、共享存储区和信号量等方法实现。 如果客户机和服务器分布在不同计算机上,它们之间的通信就需要通过网络了。 网络间的进程通讯首先要解决的是“进程标识”! 在同一台机器上,不同的进程可以用进程号作为唯一标识。但在网络间,各个机器独立分配的进程号就不能作为不同进程的区别标识了。要在网络的多台机

5、器上区别进程,必须需要机器的网络地址和端口(Port)号的参与。,套接字(Socket)是两个进程连接的端点。每个套接字都有相应的套结字地址,是由一个因特网地址和一个16位的整数端口组成,用“地址:端口”来表示。 当客户发起一个连接请求时,客户端套接字地址中的端口是由内核自动分配的,称为临时端口。然而服务器套接字地址中的端口通常是某个知名的端口,是与服务对应的。例如,Web服务器通常使用端口80,而电子邮件服务器使用端口25,等。,所以网络间进程通信的全局唯一标识需要用一个三元组:(协议,本地网络地址,本地端口) 这成为半相关。完整的网络间进程通信连接,由客户机和服务器组成,需要一个称为全相关

6、的五元组来标识: (协议,本地网络地址,本地端口, 远地网络地址,远地端口号) 以下以Unix中为例,说明客户机/服务器通过使用网络套接建立连接的时序关系:,socket(),bind(),listen(),accept(),read(),write(),socket(),connect(),write(),read(),服务器,客户机,等待服务请求,处理服务请求,建立连接,服务请求,服务响应,产生一个soket,标志着一个进程的产生,将本地soket地址(包括本地网络地址和本地端口)与创建的soket联系起来,即将本地的soket地址赋予soket,以指定半相关。,指示服务器进入等待接受状态

7、,这一对系统调用合作完成客户机和服务器之间的通信连接,以缓冲方式发送待传送的信息,以缓冲方式接受传送来的信息,1.3 客户机/服务器的连接,1.3.1 客户机与服务器连接的特征 客户与服务器间的通信是通过定义的接口实现的。 (2) 客户对服务器的请求时通过特定的词法和语法形式表达的。 (3) 从客户到服务器是以请求信息为主;从服务器到客户时以返回信息和服务器状态信息为主。 (4) 客户的请求时在客户端经过打包后传送给服务器的; (5)在服务器端,对接受到的信息进行解包分析,取出有效的信息,形成对请求的服务调用。,1.3.2 连接发生的检测 服务器不可能预测客户端何时发生连接请求。显然,服务器通

8、过循环查询的方式检查连接的到来是不恰当的。应该通过类似中断请求的方式激发和控制连接。 客户机/服务器的连接是通过“进程等待”和“网络请求中断”来完成的。 在服务器端有一个守护进程(Daemon),也称为服务器进程,它随系统启动而运行。当没有客户请求时,守护进程处于等待状态。每当有一个客户请求到达,服务器进程立即响应并产生资源分配和执行处理,然后回到等待状态,接受下一个请求。,1.3.3 连接机制 客户和服务器之间的连接方式有两种:同步和异步! 远程过程调用:位于两台计算机上的两个软件部件必须通过良好定义的接口进行通讯,这些接口可以是系统中的过程(函数),因而造成了可以调用其它机器上的函数的假象

9、,这就是由“远程过程调用(RPC)”和其它机制实现的。 同步请求:客户通过远程过程调用向服务器接口发出请求后,往往立即进入等待返回结果状态,并且在未得到返回结果之前,客户一直处于等待状态,不执行任何自身的出程序逻辑。 异步请求:客户的请求一旦发出并得到服务器的确认,客户立即返回去执行自身的其它程序逻辑,待到服务器完成请求的操作后,才把结果通知客户。,serverRequest() (3) ,(4) (5) respondClient(),(2),客户请求的异步响应,serverRequest() (6) ,(3) (4) respondClient(),(2),(5),客户请求的同步响应,1.

10、3.4 连接协议 客户和服务器之间传送的只是字符信息。该信息的意义需要进行分析处理,根据句法形式转达特定的含义。 例如,远程过程调用请求,如同程序中函数和过程的声明一样,需要提供调用的名称、执行方式、参数的个数、顺序、类型、值以及返回的类型。 在更广泛范围应用的客户机和服务器中,需要采用更为标准化的表达。目前可使用的至少有三类协议。一是在数据库系统中得到广泛应用的SQL查询语言;二是远程过程调用规范RPC/LPC;三是根据应用需要设计的用户语言。,1.4 客户机/服务器的运行机制,1.4.1 服务器的任务调度 服务器调度是解决多客户和多请求同时执行带来的诸多问题的。 作为独立工作的服务器,它必

11、须做好准备,能够同时接受和处理多个相同或者不同的请求。如果服务器已经无能力处理新的请求,它必须以一定的策略建立等待队列或者通知客户不能立即处理请求。 目前基于服务器的应用程序所使用的操作系统大多数是多任务的。这样,服务器利用多进程或者多线程机制,可以方便地建立起多客户多请求情况下的复杂调度问题。,存在两类调度方式:有等待队列和无等待队列。无等待队列方式假设服务器的进程和线程资源是无限的,足够为每一个客户请求建立其独立的处理进程或线程。有等待队列方式假设服务器的可用进程数或线程数是有限的,当同时发生的客户请求超过此数目时,请求被放入等待队列,或由服务器通知客户暂时不能进行处理。,1.4.2 进程

12、方式调度 在服务器端建立一个岁系统启动而运行的服务器主进程,它含有服务器的对外接口以及从事管理的共享数据和操作服务。当没有客户请求时主进程处于等待状态。每当有一个客户请求到达,主进程立即产生一个字子进程,然后回到等待状态,由子进程响应请求,处理完请求后撤销子进程。 有时将主进程称为主服务器(Master),它负责接受请求并调度响应任务的子进程;子进程称之为从服务器(Slave),它只执行特定的响应任务。 进程具有两个特征:代码执行和资源所有权。是多任务系统中的控制机制。但是进程会消耗大量的计算机资源,过度使用进程会造成资源紧张和效率低下。,1.4.3 线程调度方式 在服务器端仍要建立一个随系统

13、启动而运行的服务器进程,它含有服务器的对外接口以及从事管理的共享数据和操作服务。当没有客户请求时主进程处于等待状态。每当有一个客户请求到达,主进程立即产生一个线程,然后回到等待状态,由线程响应请求,处理完请求后撤销线程。 线程可以看成轻量级的进程,它是程序中的一个函数的执行。所以线程比进程所消耗的资源要小得多,但同样可以产生并发性,处理多个请求的发生。所以采用线程的服务器运行效率和速度要高于进程。,1.4.4 线程池调度方式 线程的产生和撤销也占用时间和空间。为此通常采用线程池的工作方式。 这样,在支持线程池的服务器中,服务器进程除了等待请求并分配任务外,还管理一个线程数量有限的线程池和一个请

14、求队列。线程池中的线程是在系统启动时一次性创建的,其中每个线程执行什么任务、为哪个客户请求服务,是由服务器进程的主线程管理的。 当客户请求到来时,主线程根据线程资源的负荷情况,分配一个空闲的线程,指派一个执行任务,使其运行以响应客户请求。响应结束后,线程变为闲置状态,等待新请求的到来和主线程的任务分配。这其中,不发生线程的创建和撤销,只有线程状态的变化。 当同时发生请求的数量超过线程池中线程的数量时,请求进入等待队列。,2. 实时控制系统,2.1 实时控制系统概述 举例: 飞船发射飞行控制系统; 导弹攻击跟踪系统; 病人监护系统; 工业机器人。 等等。 这类系统的共同特点是:不断循环执行对监控

15、目标的检测、计算和控制。检测器不断地检测环境信息的变化,并把数据传送给控制器。计算器在考虑目标设定和外来干扰的情况下,经过快速地计算得到控制信息,并把它交给执行器。执行器按照控制信息进行动作调整,以实现系统设定的目标。参见下图。,这个系统的另外两个特点是:整个循环周期执行的实时性和计算的连续性。实时性要求系统各个环节执行的速度要足够高。连续性要求各个部分能够重复、快速地运行,而始终维持系统工作的正确。 根据目标设定的方式的不同,这类系统又分为跟踪和稳态控制两种。 稳态控制的目标是确认不变的,例如温度控制。 跟踪控制的目标是随着环境而不断发生变化的,例如导弹攻击。,计算器,执行器,被控对象,设定

16、目标,检测器,2.2 系统结构,系统的一般结构如下图,说明如下。 检测器1到n是系统的输入信息。这些信息被采集器1到n以特定的工作方式传送到系统内部。 计算器按照一定的方式被触发执行,在设定目标的参与下根据规定的处理方法,完成对所有采集信息的计算,获得对输出的控制信息。 输出控制信息被送到各个执行器1到m,实现对系统对象的控制。 系统的实际运行状态信息又被各个检测器1到n获得,作为系统的输入再次送回,并且开始了下一轮处理循环。,作为软件部分,各个检测器以一定方式获得运行,周期性地把结果传送给各个采集器。采集器也以一定的方式运行,把获得的信息传送给计算器。采集器和计算器能够采用的运行方式有中断、消息和在计算器的启动下的轮询等。 计算器也以一定的方式运行,可以有的方式包括输入激发、定时器激发。 系统维护负责通过界面实行目标设定、工作参数选择、工作状态监视等服务型操作。,设定目标,定时器,计 算 器,执行器1,执行器m,采集器1,采集器n,检测器1,检测器m,系统维护,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1