深圳大学实验报告 软件体系结构.doc_第1页
深圳大学实验报告 软件体系结构.doc_第2页
深圳大学实验报告 软件体系结构.doc_第3页
深圳大学实验报告 软件体系结构.doc_第4页
深圳大学实验报告 软件体系结构.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

深 圳 大 学 实 验 报 告 课程名称: 软件体系结构 实验项目名称: 构件与分布式设计 学院: 软件学院 专业: 软件工程 指导教师: 吴涛 报告人:黄磊 学号:2004131221 班级: 04软件 实验时间: 07.7.2 实验报告提交时间: 07.7.5 教务处制一、 实验目的1 了解基于用例的软件体系结构设计/重构过程;2 了解和运用软件体系结构风格/模式来提高应用的可扩展性、可伸缩性和可用性;3 掌握在设计文档支持下进行应用系统重构的开发技术。二、 实验内容1 根据“网上相册”系统的用例说明文档、架构设计文档(设计指南)和源代码,对该应用的体系结构进行分析;2 对“网上相册”系统进行重构设计,改善其性能、可扩展性和可伸缩性,并使该应用可以部署于Web Farm(即由多台Web服务器组成的机群,将访问负载平衡分配到各台机器)上;3 使用Microsoft Application Center Test工具对重构前和重构后的“网上相册”系统进行测试,验证你的体系结构重构效果;4 增加“好友管理”、“查看好友共享的相片”和“相片查询Web服务”功能,并依此分析“网上相册”系统在重构前和重构后的可维护性的变化。三、 实验方法和步骤1 网上相册系统的体系结构特点分析如下:1) 应用了3层结构与MVC模式,表示层、业务逻辑层与持久层的分离较清晰。其优点是:便于组织协作开发;可测试性较好;如果该系统的功能扩展不引入更多的逻辑概念(分析类),则系统中各组件之间耦合较低,可扩展性和可维护性较好。缺点是:如果该系统的功能扩展不引入更多的逻辑概念(分析类),则系统中各组件的内聚性较低,为可扩展性和可维护性带来影响。2) 组件之间的交互通过工厂方法和接口完成,数据传递依靠Hash表、无类型DataSet,以解决组件之间交互的对象模型一致问题。其优点是简化了接口的设计和适应性;其缺点是:缺少编译时类型检查;降低了效率。3) 由于使用Session对象,简化了跨HTTP的状态保持问题,但会对系统在Web集群中部署、运行带来不利结果,影响了系统的可伸缩性。综合以上分析,可得出原系统在体系结构设计上的不足。具体表现如下:(1) 原系统的页面处理流程原系统的页面处理流程如图1所示。图1 原网上相册系统的页面处理流程(2) 适应业务功能变化的可扩展性考虑到网上相册系统可能的业务变化,对原系统需进行的相应修改/扩充评估如下:l 业务模型类(即分析类)增加新字段。此时需要在WebForm上增加新的输入域;在类型化DataSet中的相应DataTable中增加新字段并重新进行代码生成和编译;修改并编译相应WebForm后端代码;修改CategoryController和PhotoController类;修改CategoryModel和PhotoModel类;在相应数据库表中增加新字段并修改存储过程。综上所述,需要对原有Web、Controller、Model、Utils组件进行修改和重编译,并修改原有的数据库层;l 增加新的业务模型类。此时不仅需要在Web、Controller、Model、Utils组件和数据库层中增加新的代码,还需对原有的部分页面控制器代码(包括WebForm后端代码和CategoryController、PhotoController类)进行修改;综上所述,原网上相册系统仅是简单地应用三层风格和(基于页面控制器的)MVC模式,未针对可能的业务变化进行有针对性的体系结构设计。具体说来,主要有以下缺点可以进行改进:l 每个页面的后端代码中均需要调用Utils.User类的方法进行用户验证;l 由于应用基于页面控制器的MVC模式,涉及输入处理和流程控制的部分业务逻辑分散在Web组件中的WebForm后端代码和Controller组件中的CategoryController/PhotoController类中,不便于封装可能变化的部分;l 有关相片和相夹的业务逻辑之间本质上耦合程度较高,但确划分到两个控制器类和两个模型类中,反而影响了可扩展性;l CategoryController/PhotoController类与CategoryModel/PhotoModel类分别划分到Controller组件和Model组件中,但其之间的耦合仍较高;l WebForm后端代码中含有较多的输入聚合、输入验证、输入处理和用于显示的数据装载等逻辑,其中有较多的重复/类似代码难以重用。(3) 提高性能和可伸缩性的要求Web应用最重要的性能是Web服务器的处理吞吐量,最常见的是使用每秒处理的请求数来进行衡量。主要的性能和可伸缩性改进方法包括:降低Web服务器的处理负荷(将部分处理负荷交由客户端或数据库服务器去完成),以及应用负载均衡群集。原系统中,Web服务器和数据库服务器部署于同一台服务器上,虽然减少了部分网络传输开销,但单台服务器同时作为Web服务器和数据库服务器,会导致对服务器的处理能力要求过高,难以适应较大的访问量;原系统中,使用InProc方式的Session对象来完成跨HTTP请求的状态管理,导致系统无法部署于通常的负载均衡群集上。另外,增加缓存系统也可大幅度提高应用的性能。原系统基本未使用任何系统的缓存方式来提高系统的性能。(4) 提高可靠性的要求Web应用中,提高可靠性的最基本的方案是应用负载均衡群集/故障转移群集。其中,数据库服务器通常可使用故障转移群集(多机热备系统),Web服务器通常使用负载均衡群集。原系统中Web服务器和数据库服务器均未应用任何群集技术。2 根据以上对系统体系结构的分析,对“网上相册”系统进行重构设计,改善其性能、可扩展性和可伸缩性,并使该应用可以部署于Web Farm上。具体改进策略如下:l 用户验证交由独立的HttpModule完成,并应用策略模式,不但令WebForm后端代码中无需加入用户验证代码,也使得系统可以灵活地配置用户验证策略,提高了系统的可测试性(因使用ACT进行压力测试时,真实的用户验证逻辑将大大增加测试脚本的复杂性,不便于利用录制的方式生成测试脚本)。l 将Model组件中的CategoryModel和PhotoModel类的功能合并,提高内聚性;l 将输入验证功能交由WebForm上的Validator控件实现;l 将原由页面控制器完成的每个页面的输入处理/数据装载逻辑进一步分解成粒度较小的Action类,并应用反射工厂模式和Command-Chain模式,使之可以在配置文件中针对各个页面进行配置;l 将原先分散在不同的WebForm后端代码中的聚合客户端提交数据的逻辑改由前端控制器根据配置信息完成,既减少了重复代码,又提高了可测试性;l 将原有的与相片/相夹相关的业务逻辑代码(包括action类、Model类)均划分到一个Photo组件中。新增加的业务模型类同样根据业务概念之间的内聚性划分为不同的组件;l 应用IoC模式,由前端控制器将Action类装载的(用于显示的)数据以数据集方式传递给x相应WebForm,使得Web组件与业务逻辑组件之间完全解耦,配合使用数据绑定技术,使得增加新的业务模型类时,无需修改WebForm后端代码,避免了对Web组件的重编译(只需修改.aspx文件即可);新增加的页面既可以放入Web组件中,也可以划分到新的表示层组件中;l 改进跨HTTP请求的状态管理。自定义的跨HTTP请求状态管理方案,此方案需要自行编写状态管理代码,虽然增加了工作量,但效果较好。l 在数据访问层和表示层均增加缓存机制,提高系统的性能。类似于状态管理方案,缓存机制也必须考虑能否部署于群集系统中;l 数据库服务器使用两台服务器、两台光纤交换机和一台双端口磁盘阵列服务器建立一个双机热备系统,以提高数据库服务器的可靠性;l Web服务器使用两台或多台服务器构成一个基于DNS的负载均衡群集,一方面可提高系统的性能和可伸缩性,同时亦可提高Web服务器的可靠性。3 使用Microsoft Application Center Test工具对重构前和重构后的“网上相册”系统进行测试,验证你的体系结构重构效果。验证结果如下:重构前重构后浏览器同时连接数1212每秒平均请求响应数638308712370从以上图表的数据可以得出重构后比重构前的性能提高平均为15%.4 增加“好友管理”、“查看好友共享的相片”和“相片查询Web服务”功能.对原系统修改如下:增加的文件:BrowseFriendPhoto.aspx /浏览好友相片夹ListFriendCategories.aspx /列出好友列表ManageFriends.aspx /管理好友,对好友进行添加、删除ViewFriendPhoto.aspx /查看好友相片QueryPhotoService.asmx /相片查询Web服务增加的

温馨提示

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

评论

0/150

提交评论