软件体系结构大作业模板.doc_第1页
软件体系结构大作业模板.doc_第2页
软件体系结构大作业模板.doc_第3页
软件体系结构大作业模板.doc_第4页
软件体系结构大作业模板.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件体系结构大作业 题题 目:目: 管道-过滤器模型 专业班级:专业班级: 13 软件工程 1 班 学生姓名:学生姓名: 马潇霄 学学 号:号: 12013241604 2015 年 10 月 20 日 目录目录 1.1.问题背景问题背景.3 2.2.相关综述相关综述: : 管道管道- -过滤器模型过滤器模型.3 3.3. 设计内容设计内容/ /方案:管道方案:管道- -过滤器的设计原型过滤器的设计原型.6 4.4. 总结总结.8 参参 考考 文文 献献.9 3 1.问题背景 摘 要 软件体系结构设计给出了大规模软件复用,特别是领域复用的重要设计模 式。体系结构描述了软件系统的整体 组织结构与风格,对软件的性能和质量有直 接的影响。管道-过滤器模式是一种面向数据流的软件体系结构。该文对这种 体 系结构做了深入的讨论,并结合一个具体应用给出了设计原型。 关键词 管道-过滤器模型 管道 过滤器 随着软件系统规模和复杂性的增加,系统总体结构设计的 重要性已远远超过 特定算法和数据结构的选择,良好的体系结 构是保证系统成功的关键。基于软件 体系结构的过程开发是现代软件开发的基本途径,也是软件工程成熟的标志。软 件体系结构的风格或模式包括客户 -服务器模式的体系结构 ,管道-过滤器模式的 体系结构,层次式体系结构,面 向对象的体系结构等。 管道-过滤器模式的体系结构是面向数据流的软件体系结构。它最典型的应 用是在编译系统。一个普通的编译系统包括词法分析器,语法分析器,语义分析 与中间代码生成器,优化器,目标代码生成器等一系列对源程序进行处理的过程。 人们可以将编译系统看作一系列过滤器的连接体,按照管道 -过滤 器的体系结构 进行设计。此外,这种体系结构在其它一些领域也有广泛的应用。因此它成为软 件工程和软件开发中的一个突出的研究领域。 2.相关综述: 管道-过滤器模型 2.1 模型的结构与特征 管道-过滤器模型的基本部件都有一套输入输出接口。每个部件从输入接口 中读取数据,经过处理,将结果数据置于输出接口中,这样的部件称为 “过滤器” 。 这种模型的连接者将一个过滤器的输出传送到另一个过滤器的输入,该文把这种 连接者称为“管道” 。 在这种模型中,过滤器必须是独立的实体,每一个过滤器的状态不受其它过 滤器的影响。并且,虽然人们对过滤器的输入输出有一定的规约,但过滤器并不 需要知道向它提供数据流的过滤器和它要提供数据流的过滤器的内部细节。 过滤器的基本结构如图 1。 4 图图 1 1 管道管道- -过滤器中的基本单元:过滤器过滤器中的基本单元:过滤器 管道-过滤器模式的系统构架如图 2。 图图 2 2 管道管道- -过滤器模式的系统构架过滤器模式的系统构架 2.2 模型的优点 管道-过滤器模型有如下的优点: (1)设计人员将整个系统的输入输出行为理解为单个过滤器行为的叠加与 组合。这样可以将问题分解,化繁为简。 (2)任何两个过滤器 ,只要它们之间传送的数据遵守共同的规约就可以 相连接。每个过滤器都有自己独立的输入输出接口,如果过滤器间传输的数 据遵守其规约,只要用管道将它们 连接就可以正常工作。 (3)整个系统易于维护和升级:旧的过滤器可以被替代,新 的过滤器可以 添加到已有的系统上。软件的易于维护和升级是 衡量软件系统质量的重要指 标之一,在管道-过滤器模型中,只要遵守输入输出数据规约,任何一个过滤 器都可以被另一个新的过滤器代替,同时为增强程序功能,可以添加新的过滤 器。这样,系统的可维护性和可升级性得到了保证。 (4)支持并发执行:每个过滤器作为一个单独的执行任务, 可以与其它过滤 器并发执行。过滤器的执行是独立的,不依赖 于其它过滤器的。 2.3 模型的缺点及其改进 5 管道-过滤器模型有如下的缺点: (1)交互式处理能力弱:管道-过滤器模型适于数据流的处理和变换,不适合 为与用户交互频繁的系统建模。在这种模型中,每个过滤器都有自己的数据, 这些数据或者是从磁盘存储器中读取来,或者是由另一个过滤器的输出导入进 来,整个系统没有一个共享的数据区。这样,当用户要操作某一项数据时,要 涉及到多个过滤器对相应数据的操作,其实现较为复杂。 由以上的缺点,可以对每个过滤器增加相应的用户控制接 口,使得外部可 以对过滤器的执行进行控制。改进的过滤器如 图 3。 图 3 带有用户控制接口的过滤器 (2)数据的打包与解包:有时,系统中的过滤器需要有一个数据转换器来对 输入输出数据进行解包打包。这样会降低系统性能,增加实现过滤器的复杂性。 2.4 与面向对象的体系结构的比较 面向对象的体系结构就是应用面向对象的方法建立系统的体系结构。其主要 思想是:对问题域中客观存在的各项事物建立相应的对象,对象的属性与方法 分别描述事物的静态特征与动态行为,对象间的交互通过对其方法的调用进行。 面向对象方法的优点是它封装了对象的属性和行为,实现了“信息隐蔽” 。同 时,对象内部行为的修改不影响外部对它的调用。 面向对象的体系结构的一个明显的缺点是:当一个对象通过过程调用与其它 对象交互时,它必须知道其它对象的标识。而当一个对象的标识改变时,需要 对所有调用这一方法的对象进行修改。而在管道(过滤器这种体系结构中,过 滤器与其它过滤器相连接时不必知道系统中的其它过滤器。而且当某个过滤器 发生改变时,不需要对其他过滤器进行改动。 6 在实际应用中,可以将这两种体系结构结合起来。例如,先按照管道(过滤 器的思想建立系统的体系结构,然后应用面向对象的方法设计和实现过滤器及 管道。 3. 设计内容/方案:管道-过滤器的设计原型 3.1 问题域 下面举一个简单的例子说明管道-过滤器的应用与实现。 需求描述:假设 有一批实时的二维坐标点数据需要变换(即对点的横、纵坐标进行缩放) ,并 在屏幕上进行显示,要求外部要能设置变换规则(如缩放倍数)和显示规则 (如显示模式和显示颜色) 。 3.2 体系结构建模 这是一个对坐标点的数据流进行顺序处理的过程,可以应用管道(过滤器体 系结建模。将这个系统分为两个过滤器,一个为坐标点数据流变换过滤器,另 一个为坐标点数据流实时显示过滤器。其中,坐标点数据流变换过滤器有一个 外部控制接口对变换规则如缩放倍数进行设置,坐标点数据流实时显示过滤器 有一个外部控制接口对显示规则如显示模式和显示颜色进行设置。 整个系统的体系结构如图 4。 图 4 坐标点变换与显示的体系结构 3.3 过滤器的设计 可以将过滤器用状态转换图表示。 过滤器有如下状态:停止状态,工作状态,等待状态,休眠状态。 停止状态:表示过滤器处于待启动状态,当外部启动过滤器后,过滤器处 于处理状态; 处理状态:表示过滤器正在处理输入数据队列中的数据; 7 等待状态:表示过滤器的输入数据队列为空,此时过滤器等待,当有新的 数据输入时,过滤器处于处理状态; 休眠状态:表示过滤器已经启动,但被挂起。挂起的原因可能是由于外界 用户要设置过滤器的控制参数,这样暂时将过滤器挂起但不中止它,当控制参 数设置完毕后再将过滤器还原,继续运行。这样,实现了较高的效率。 图 5 为过滤器的状态转换图。 图 5 过滤器状态转换图 (1)收集文档(Gathering Document) ; (2)建立索引(Indexing) ; (3)传递索引(Transferring Index) 。 以上过程是顺序执行的。一般来说,收集文档所占用的时间最长,其次是 创建索引,最后是传递索引。 LSE 在访问文档时,主要采用三种方法: (4)直接访问:直接通过 NFS 来访问文件; (5)档案访问:由 CGI 对多个文件建立档案,然后再传递这些档案文件; (6)HTTP 访问: 每次访问时,每个文件都通过 HTTP 进行传递。 在这三种搜集文档的方法中,直接访问最快,其次是档案访问,最后是 HTTP 访问。为了检查上面哪种方法比较适用,CSE 使用 CGI,又称为探测器, 来探测 Web Server 所处的状态。此外,CGI 还通过 ServerRoot 和 Web 服务器上 的 User 表为每个用户创建自己的档案文件,然后将这些档案文件传送给搜索引 擎。 3.4 协作式搜索引擎(CSE)的特征 (1)CSE 采用分布式机器人(Robot)增加并行性,从而可以同时搜集多 8 个文档。 (2)CSE 主要是由多个彼此间相互协作的本地元搜索引擎构成,本地元搜 索引擎是本地搜索引擎与存储服务器进行通信的接口。 (3)CSE 的更新周期较短,因为每个 Web 站点上的索引代理是通过直接 访问 Web 文文件来建立索引的,而不是通过 HTTP 访问来建立索引的。 (4)采用“下 10 个”搜索方法,提高用户获取信息的效率。 “下 10 个”搜索方法是指搜索引擎先将搜索到的与查询条件相匹配的 10 个文文件显示给用户,而且每个页面仅显示 10 个,用户在浏览这 10 个文文 件的同时,搜索引擎仍在后台不停地搜索。这样就减少了用户查询信息所发费 的时间,提高用户获取信息的效率。 (5)根据与查询条件相关联的程度对文件划分等级。 CSE 可以根据与查询谓词相关联的程度把文档划分为不同的等级,这也是 一种减少更新周期的方法。这是因为一个搜索引擎即使可以搜索到包含指定关 键词的所有文文件,但是如果搜索的页面太多,搜索引擎就不能够从中选择出 最重要的页面。所以可以采用计分的方法来划分不同等级的文文件,分数越高, 该文档与查询谓词的关联程度就越大。 在对文档进行分级的所有方法中,tf*idf 方法是最流行的一种,其中 tf 是 文档中某条目所出现的频率,idf 是某条目的稀疏度。根据公式(1)可以计算 出 idf 的值: Idf=log(N/n) 其中 N 是所有文档的数量,n 是包含某条目文档的数量。 在 CSE 系统中,idf 值的计算是被分配到搜索过程中与搜索过程并行执行的。 4.4. 总结总结 该文描述了一种新的分布式搜索引擎,叫作协作式搜索引擎(CSE) ,介绍 了它的框架、搜索和更新过程。CSE 通过元搜索引擎将多个本地搜索引擎集成 在一起协调工作,多个本地搜索引擎能够协调工作是由于元搜索引擎隐藏、屏 蔽了本地搜索引擎的不同。在 CSE 中,通过直接访问和档案访问,每个本地搜 索引擎能够快速更新 web 站点上的文档,从而 CSE 克服了目前的分布式搜索引 擎(如 Harvest,Google)不能协调利用本地搜索引擎、收集文件时间过长以 9 及本地搜索引擎之间响应不一致的问题。因此,CSE 能够真正实现收集快速、 更新及时、定位准确。 参参 考考 文文 献献 1 王继成,杨晓江,基于元资料与 Z39.50 的分布协作式 Web 信息检索J.软件学报, 2001:12(4) 2 C Mi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论