- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10-软件体系结构模式2–CS
现代软件工程九. 软件体系结构模式2 中国传媒大学计算机软件学院 研究生课程 主讲教师:扈文峰 1. 客户机/服务器结构(C/S) 1.1 客户机/服务器概述 一个软件系统整体被分为两个逻辑上分离的部分,每一部分充当不同的角色、完成不同的功能。一般地,客户机为完成特定工作向服务器发出请求,服务器的任务是处理客户的请求并返回结果。 常见的例子有:操作系统的内核与外层之间、在通过网络连接的物理上分离的计算机之间等,都属于C/S结构。 随着网络特别是国际互联网的发展,允许应用程序分布在多台计算机上共同完成统一任务的C/S结构获得了极大的应用。由开始单纯的“客户界面/数据库服务器”的两层结构,逐渐分离出应用逻辑服务器、WWW服务器等,形成更为复杂的多层C/S结构。即使在两个服务器的连接之间,也是一个充当客户机,一个充当服务器。参见下图。 客户界面 数据服务器 两层C/S结构 客户界面 数据服务器 应用逻辑服务器 三层C/S结构 客户界面 应用逻辑服务器 数据服务器 WWW服务器 四层C/S结构 1.2 客户机/服务器的结构分析 1.2.1 客户机/服务器的组成 客户机/服务器系统是两个独立的逻辑系统为完成特定任务而形成的单向协作关系。 客户机通常由以下部分组成: ◆ 用户交互界面(可选); ◆ 请求表达; ◆ 服务代理; ◆ 通信。 服务器通常由以下部分组成: ◆ 服务器接口; ◆ 调度管理; ◆ 事务处理计算; ◆ 共享资源管理; ◆ 通信。 客户机和服务器之间具有通讯连接机制,并遵循公共的通讯协议,包括: ◆请求的表达; ◆ 返回结果的表达; ◆ 连接关系和连接状态的表达。 1.2.2 各个组成部分的责任 ◆ 客户的用户界面:负责接受用户的输入、提交用户的操作请求、显示操作请求返回的结果。 ◆ 请求表达:把用户的操作请求转换为合乎通讯协议的表达形式。 ◆ 服务代理:是服务器在客户方的代理部件,客户通过它提出请求、获得返回信息、掌握服务器的工作状态。 ◆通信部件:负责建立和保持客户与服务器之间的连接。 ◆ 共享资源管理:是服务器内部维持的内部公共信息和其他资源,它为操作请求的实现提供信息的资源。 ◆ 调度管理:根据客户的请求和内部的工作状态,管理刻画请求,调配系统资源,快速高效地完成操作请求处理。 ◆ 服务器接口:体现了服务器所能够对外提供的操作服务,是客户与服务器连接的桥梁。 ◆ 事务处理计算:负责完成接口所描述的各种计算和处理。 1.2.3 客户机与服务器之间的通信 如果客户机和服务器都配置在同一台计算机上,客户机与服务器之间的通信连接可以通过消息、共享存储区和信号量等方法实现。 如果客户机和服务器分布在不同计算机上,它们之间的通信就需要通过网络了。 网络间的进程通讯首先要解决的是“进程标识”! 在同一台机器上,不同的进程可以用进程号作为唯一标识。但在网络间,各个机器独立分配的进程号就不能作为不同进程的区别标识了。要在网络的多台机器上区别进程,必须需要机器的网络地址和端口(Port)号的参与。 套接字(Socket)是两个进程连接的端点。每个套接字都有相应的套结字地址,是由一个因特网地址和一个16位的整数端口组成,用“地址:端口”来表示。 当客户发起一个连接请求时,客户端套接字地址中的端口是由内核自动分配的,称为临时端口。然而服务器套接字地址中的端口通常是某个知名的端口,是与服务对应的。例如,Web服务器通常使用端口80,而电子邮件服务器使用端口25,等。 所以网络间进程通信的全局唯一标识需要用一个三元组:(协议,本地网络地址,本地端口) 这成为半相关。完整的网络间进程通信连接,由客户机和服务器组成,需要一个称为全相关的五元组来标识: (协议,本地网络地址,本地端口, 远地网络地址,远地端口号) 以下以Unix中为例,说明客户机/服务器通过使用网络套接建立连接的时序关系: socket() bind() listen() accept() read() write() socket() connect() write() read() 服务器 客户机 等待服务请求 处理服务请求 建立连接 服务请求 服务响应 产生一个soket,标志着一个进程的产生 将本地soket地址(包括本地网络地址和本地端口)与创建的soket联系起来,即将本地的soket地址赋予soket,以指定半相关。 指示服务器进入等待接受状态 这一对系统调用合作完成客户机和服务器之间的通信连接 以缓冲方式发送待传送的信息 以缓冲方式接受传送来的信息 1.3 客户机/服务器的连接 1.3.1 客户机与服务器连接的特征 客户与服务器间的通信是通过定义的接
文档评论(0)