系统结构模式层体系结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运行机制
▪ 进程方式调度
▪ 主进程(Master)接收请求并分配调度响应任务 ▪ 子进程(Slave)执行特定的相应任务
▪ 线程方式调度
▪ 进程 / 子线程
进程随系统启动而运行;没有用户请求时处于等待状态;当有客 户请求到达时,由该进程产生一个线程相应用户请求,同时该进 程回到等待状态。
▪ 效率和速度优于基于进程的调度 ▪ 线程池
通信部件
通信部件
结构分析
▪ 客户与服务器的通信
▪ 同一机器上
▪ 消息 ▪ 共享存储区 ▪ 信号量
▪ 不同计算机 ▪ 网络(Socket)
客户/服务器的连接
▪ 对连接的需求
▪ 接口方式:使用过程;基于消息 ▪ 特征
▪ Client/Server通信通过接口实现 ▪ 请求及返回信息遵循一定的语法和句法 ▪ 信息传递的方向性 ▪ 信息的打包和解包 ▪ 客户的请求最终转换为服务器上的服务Biblioteka Baidu
▪ input data stream to the system , for example ▪ A file consisting of lines of text ▪ A sensor delivering a sequence of numbers
▪ data can be pushed or pulled into first processing stage
优缺点
▪ 优点
▪ 可以进行重组 ▪ 更换和添加部件,从而进行维护和升级 ▪ 部件的重用性好 ▪ 支持快速原型系统的设计实现 ▪ 自然的并发特性 ▪ 拓扑结构清晰,容易进行性能方面的分析
优缺点
▪ 缺点
▪ 共享状态信息的代价高而且不灵活 ▪ 不适应交互式应用系统的设计和运行 ▪ 需要进行数据格式的设计和转换;需要对数据的句法
避免频繁产生和撤销线程。
运行机制
▪ 线程池调度方式
1. 不发生线程的创建与撤销;只有线程状态的变化 2. 请求的数量超过线程数时,请求进入等待队列。此时,需要使用信号量
4. 仓库系统:
Microsoft SQL Server的C/S体系结构
仓库系统(Repository): 数据或信息的集中存放和管理服务系统
SQL Server的结构
SQL Server的结构
▪ 网库(Net-Library):支持多种网络协议 ▪ 开发数据服务ODS
(Open Data Services) 是SQL Server的客户管理器 ▪ 处理连接
响应事件: 连接事件 语言事件 远程存储过程事件
▪ 管理运行线程
SQL Server的结构
▪ for passive filters , the pipes can be implemented by a direct call ▪ Make the filter recombination harder
▪ Data Sink (数据池)
▪ consumes output data
结构
▪ 特点
▪ 整个循环周期执行的实时性 ▪ 计算的连续性
▪ 分类:跟踪 、 稳态控制
系统结构
检测器、采集器:中断/消息/由计算器启动轮询 计算器:输入激发/定时器激发
系统类型
▪ 集中式数据采集
▪ 多信息源、多信息类型的连续实时采集 ▪ 特点:
▪ 输入:信息的类型有差异;采集数据的周期有差异 ▪ 输出:大容量存储 ▪ e.g. 电力系统调度
客户/服务器的连接
▪ 连接发生的检测
▪ 使用进程等待或网络请求中断 为什么不使用循环查询方式?
▪ 守护进程(Daemon)
▪ 同步和异步连接方式
▪ 使用过程 ▪ 易于实现同步方式; ▪ 需要使用异步回调才能实现异
步方式;
▪ 使用消息 ▪ 可实现同步 / 异步方式;
消息实质上是异步的
客户/服务器的连接
或语义进行分析 ▪ 通过并行运行获得高运行效率往往行不通
▪ 独立运行的部件间的数据传送的效率低 ▪ 过滤器通常在消耗所有的输入后才产生输出 ▪ 在单CPU上进程的切换代价高 ▪ 通过管道对过滤器进行同步控制,可能导致频繁启动和停止过
滤器
▪ 难以进行错误处理
2. 实时与连续计算
▪ 适用情况
▪ 对被控制目标的检测、计算和控制的不断循环执行,以实时地对 环境的变化做出反应。
▪ 表扫描接口(打开表、检索限定的数据、更新数据)
▪ 数据库管理器和页管理器
▪ 管理页的集合
▪ 事务管理器
▪ 保证事务的ACID属性 ▪ Atomicity,Consistency,Isolation,Durability
SQL Server的结构
▪ 加锁管理器
▪ 处理并发时需要进行锁的操作
▪ 行操作管理器和索引管理器
▪ 逻辑控制
▪ E.g. 加工中心、生成线等 ▪ 特点:输入数据类别多、控制关系复杂、输出点和类别多
▪ 过程控制
▪ 控制目标一旦设定后不随时间而变化的系统 ▪ 特点:常用负反馈过程控制 ▪ E.g. 温度、流量、速度等
的稳态控制
系统的设计和实现
▪ 控制器设计
▪ 根据输入 与输出类别、问题的控制关系的特殊需要, 专门进行设计
▪ Client/Server连接中的方向性
▪ 正向 ▪ 反向 —— e.g. 服务器的消息广播
结构分析
▪ 客户/服务器的组成
▪ 客户向服务器发出操作请求,并期待从服务器得到操 作执行结构的响应。
▪ 组成部分间的关系
Client
Server
用户交互界面
调度管理
事务处理
请求表达 服务代理
服务器接口
共享资源管理
Intermediate Code Generation
AuLait program
Optimization
optimized AuLait program
Intel Backend
SPARC Backend
DII Backend
Interpreter
使用示例
▪ Unix系统中的管道过滤器结构
ls –al | grep my
▪ 通讯协议的信息封装(e.g. SDH)
结构
▪ 过滤器的作用:对输入数据的处理
▪ enriches : computing and adding info ▪ refines : concentrating or extracting info ▪ transforms : delivering data into some other representation
1. 管道-过滤器
▪ 适用环境
▪ 适用于对数据流的处理 ▪ The pipe and Filter architecture pattern provides a structure for
systems that process a stream of data
▪ 组成部分
▪ Components are filters 过滤器 ▪ each encapsulated a processing step ▪ transform input data streams into output data streams ▪ possibly incremental production of output
系统结构模式层体系结构
风格(Style)
风格
▪ 问题:
选择基本结构模式和利用系统资源后,如何将其组织 和连接而形成整体。
▪ 风格
▪ 管道-过滤器 ▪ 实时与连续计算 ▪ 客户/服务器 ▪ 仓库系统 ▪ 黑板系统 ▪ 解释器/虚拟机 ▪ COM / DCOM组件 ▪ WWW网络 ▪ WWW浏览器 ▪ 微核
▪ 类型
▪ pipelines — linear sequences of filters 将过滤器严格限制为单输入、单输出的类型
▪ bounded pipes — limited amount of data on a pipe
▪ typed pipes — data strongly typed ▪ batch sequential — data streams are not
▪ 行操作管理器
在单个行上对数据进行检索、修改和执行操作
▪ 索引管理器
维护并支持对B树的建立、修改和搜索
▪ 缓冲区管理器和日志写入器
▪ “Log先行” : 数据库恢复的关键
服务接口
▪ DB-Library
▪ 面向SQL Server最早编程接口 ▪ 用途:设计应用程序用于…
▪ 建立连接 ▪ 对查询进行格式化 ▪ 将查询送入服务器 ▪ 处理查询结果
incremental
特性
▪ 过滤器是独立运行的部件
▪ 非临近的过滤器之间不共享状态 ▪ 过滤器自身无状态
▪ 过滤器对其处理上下连接的过滤器“无知”
▪ 对相邻的过滤器不施加任何限制
▪ 结果的正确性不依赖于各个过滤器运行的先后次
序
▪ 各过滤器在输入具备后完成自己的计算。完整的计算 过程包含在过滤器之间的拓扑结构中。
▪ 管道 Pipes
▪ connections between filters , between data source and the first filter , between the last filter and the data sink
▪ synchronizes joined active filters , for example , by a FIFO ( firstin-first-out ) buffer
▪ 主动式过滤器(Active filter)
▪ filter is active in a loop , check the pipes for data ▪ processing on its own as a separate program or thread
结构
▪ Data Source (数据源)
▪ 被动式过滤器(Passive filter)
▪ adjacent pipes pulls/pushes output/input data from/into the filter ▪ active either as a function ( pull ) or as a procedure ( push )
使用示例
▪ 编译操作
Mocha Program : ASCII text
Scanner : Lexical Analysis
token stream
Parser / Syntax Analysis
abstract syntax tree
Semantic Analysis
Augmented abstract syntax tree
▪ 连接的协议
▪ C/S之间传递的信息需要经过分析处理,转达 特定的意义
▪ 协议分类 ▪ SQL查询语言 ▪ 远程调用规范RPC / LPC ▪ 用户自定
运行机制
▪ 服务器的任务调度
▪ 如何解决多客户访问的问题?
通常使用多进程或多线程进行控制和运行
▪ 无等待队列 / 有等待队列 ▪ 无等待队列 假设服务器的进程或线程资源无限 ▪ 有等待队列 假设服务器的进程或线程资源有限
▪ 发展方向:专用的硬软件 嵌入式软件
▪ 系统组态的可编程控制
▪ 专用软件环境的组态设计 ▪ 工作过程:
▪ 使用组态设计得到“梯形图”的
符号表达体系
▪ 由解释器解释执行“梯形图”
系统的设计和实现
▪ 数据流
▪ 将系统的输入、输出、计算控制设置为独立部 件;部件间通过数据连接
▪ 各个部件在所需的数据就绪后开始工作,并将 结果传递给后续的部件
▪ 可使用时钟的定时作用触发系统的工作。
检测
计算
输出
3. 客户 / 服务器结构
▪ 服务器
▪ 信息或数据库服务器 / 操作服务器; 数据库服务器 —— 存储和处理大量数据。数据的存储和快速检索 操作服务器 —— 以提供操作服务为主
▪ 终结服务 / 非终结服务器 非终结服务器 —— 需要其他服务器的支持
▪ Connectors are pipes 管道 ▪ conduits for data streams between adjacent filters .
▪ Recombining filters allows you to build families of related
systems .
▪ 命令分析器和远程存储过程调用(RPC)
管理器
▪ 将Transact-SQL命令翻译成顺序树(查询树)
▪ 序列化和优化器
▪ 从查询树产生一个执行规划(规范化、优化)
▪ 执行器(Executor,执行引擎)
▪ 将执行规划中的命令发送到相应的模块
SQL Server的结构
▪ 搜索管理器(Access Methods Manager)