(计算机应用技术专业论文)工程信息管理系统的性能优化研究.pdf_第1页
(计算机应用技术专业论文)工程信息管理系统的性能优化研究.pdf_第2页
(计算机应用技术专业论文)工程信息管理系统的性能优化研究.pdf_第3页
(计算机应用技术专业论文)工程信息管理系统的性能优化研究.pdf_第4页
(计算机应用技术专业论文)工程信息管理系统的性能优化研究.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

(计算机应用技术专业论文)工程信息管理系统的性能优化研究.pdf.pdf 免费下载

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

文档简介

西南交通大学硕士研究生学位论文第1 页 摘要 工程信息管理系统是网络技术与工程管理有机融合的整体,它以阿络为 平台,以工程管理为主题,在实现过程中其工作效果与系统的实际性能休戚 相关,如何将处于不同地域不同网络不同环境的节点联系起来,进行工程数 据的共享和集成。如何保证稳定商效的系绕运行状态,快速准确的实时响应, 并提供流畅优质的客户体验,这就是工程信息管理系统的性能优化研究所要 实现的目标。 本文首先介绍了作者参与设计和开发的应用于中铁工程总公司及其下属 各工程局的工程信息管理系统,阐述了系统在工程施工管理中的重要性,列 举出在实际应用中遇到的涉及远程传输、资源分配、系统响应等多方面的性 能司题,并分析各种问题产生的原因。 然后,文章进一步对a j a x ,数据压缩等相关技术进行了深入研究和论述, 并从实际应用的角度详细阐述利用a j a x 技术实现客户端与服务器的异步交 互以解决响应延迟,利用数据压缩技术以减少网络运载负荷,提升传输效率, 结合n e t 的内存回收机翻进行代码设计以合理分配系统资源,剩用缓存技术 进行用户输出以节约响应开销等关键闯题综合提出一整套性能优化解决方 案,以达到显著提升系统吞吐能力和运行负荷的最终目的。 最后,从实践角度验证了优化方案的可行性。 关键词:性能优化,a j a x ,数据压缩,资源控制 西南交通大学硕士研究生学位论文第页 e n g i n e e r i n gi n f o r m a t i o nm a n a g es y s t e mi st h ea l la n dt h e o d ec o m b i n e dw i t h n e t w o r k 幻曲l 帕l o 盯锄d 舶舀酬吨m a n a g e ,i t t a k e sn e t w o 矗罄p k t f o r n l ,t a k e e n g 抽e e r mm a n a g e 鹪s u b j e 嚏啊由0 9 cj o be 艋 e c t a n dt h es y s t m m 主;ca c t u a l f l i n c 6 鲫越b o u n du , g a 精i n & 嚼o fr e a l i z a t i o n ,b o wt oc o n n e c tm a n y n o d e sb e i n gi nd 鼢嘟r e g i o na n dd i s s i m i l a rn e t w o r ka n dd i v e r s i t ye n v h o 帕日托诎 t os h a r em d - g r m e 位a 喀m 麓痂喀d m a , h o wt oi 峨聪t h ek g i h 翩s y s t e m o p c l 缸i 0 ds t m e , a n dm p i d l yr e s p o n di n 奢目d 妇, a n dp r o v i d ct h ec u d n hf o r f l u e n tk g ha 币e f i 曩b 鼠t h a ti st h et a r g e tt o n 嚣p e r f , m n m 雠o p a n 也z a o o u i c s c f l i t 盘o da 喀m 吲n gi n f o r m a t i o nm a n a g e s y s t e m f u s t , i m r o d u t h ea 塔m 鼬gi n f o r m a 豳mm a n a g es y s t e mu s e di nt h e c h i n ar a i l w a ye n g m e e r i n gc r o u pc o l t d ( c r y - ) a n d 鲫h 画d 妇l ya 喀碱n g b u n 蕾uw h i c ht h ea u t h o rp m 啦c i p m ei nd | 商罂d 甥a n dp n ) g r m n m g a 甲蕊蹴t h e 蛳t a n c ei na 塔i 删n gm 趣m 龄,【j 蛙o u tt h ea 峨圮i 缅gt om 锄眇商d e d p e r f o n n a n p r o b l e ms u c h 籀1 0 啦g 嘲萨m m s m i s s i o n ,他蝴a s s i g n n 枷, s y s u 班r e s p o n d , a n da n a t y s i n gt h ec a u s a t i o nw h i c hv a r i o u sp r o b l e mc o m m gi n t o k = i n g f 觚, a j a xa n d d a t a c 0 蚰p 佗商a n d l 锄e dt e c h 的b g i 鹪a 她 r e s e a r c h e di n 矗= p 曲,触t h e 锄g i eo fa c t u a l 群p l i 洌i 0 乌嘲m 酬m a n yk e y p r o b l e ms u c ha sh o w t os o l v ed e l a y i n gi nr e s p o n d i n gb e t w e mc l e n ta n d3 a 孵b y 璐吨硒酝锹加“o g 栅t of a l lo f f 蜘嘟眇bl o a d 砌她蛔嘲 胡j c i 蹦c y 蚵u s m g d m a c o m p r e s st e c l u m i o g y , h o wt od e s i g nc o d et oa s s i g ns y s t e m 增跚峨m a o 捌t yb ,r 臧t h e n e tm e m o f yr e c l a i m s k 岫i 嗣咂,h 嗍t os a v e s y s t e ms p m d i i n gi nr e s p o n d i n gb yi l 商鹪c a c h eo u t p u tt od 缸g 曩蒯i 秘a s c h e m eu s i n gi np e r r m a l 妇商圈嚏i o n t o i 妇u l t h n m cp q ,峨t h a t i m p r o v et h eh a n d l i n ga 甲a c i t ya n dm n n i n g 姗o f s y s t e m f i n a l , 越f 嘲 b i l i t yo f o p t i m i z a t i o n 懿概i s 阳 t i f i e di n 珥跚觎 西南交通大学硕士研究生学位论文第l 页 1 1 引言 第1 章绪论 电子商务系统不同予传统商务活动中的直接联系和交流,而是 在使用上完全立足于网络的企业与客户、合作伙伴、供应商,分销 商等进行的商务活动,在滚程上更顺应了信息社会的要求,更体现 速度、效率与灵活性,因此,承担商务运作的载体电子商务系 统,在性能上更需要在设计开发中予以关注。 而目前很多应用中的电子商务系统却在性能上不尽如人意,其 中多数系统一方面由于使用时甸不长,数据量还未达到检验性能的 标准,这一问题没有得到集中体现,另一方面由于同一时段在线操 作的用户数并不算多,也没有触发性能瓶颈。丙在已经长对闯应用 的系统中,出现了以下问题: l 、一旦遇到数据量增多或者操作用户进程增多的情况,就会出 现执行某个数据操作费时过长导致超时 2 、系统运行一段时间出现后服务器资源耗尽两必须手动进行重 启否则系统无法正常运行 3 、用户在提交页面后,由于需要进行数据交互,使得在服务器 数据返回前,用户只能等待而不能进行其他操作。 因此如何构建一个性能卓越的电子商务系统是非常亟待解决的 技术问题工程信息管理系统是作者参与开发的一个多点部署,用 子工程施工管理的大型商务系统,已应用于中铁工程总公司及其下 属各工程局,在实际应用中也出现了上述问题 西南交通大学硕士研究生学位论文第2 页 1 2 论文研究的意义 1 2 1 为什么要进行性能优化 不断提高企业自身的效率及应变能力,迅速掌握工程旖工的进 展情况,全面高效的保证工程任务的顺利完成是工程信息管理系统 所要达到的主要目的工程信息管理不仅仅是施工进度数据的电子 化管理,更包括相关的麓工队伍,麓工技术、施工协作等整个关系 链的电子化管理,是整个麓工过程的电子化和信息化它推动的是 企业生产力和核心竞争力的调整和提高因此,工程信息管理系统 更应该超越一般的应用软件,具有更加稳定可靠的性能,总的来说, 在运行性能上应具有以下特点: 1 ) 系统运行稳定,能适应长时阀高负荀的运行。电予商务系统 由于其特殊性,承载它的服务器往往是2 4 小时不同断运行的,因此 一旦在使用过程中由予系统设计不当造成内存泄漏,长时间运行后 就必然发生服务器崩溃、执行效率低下,响应速度缓慢等情况 2 ) 能适应菜时阐段内的密集操作,电子商务系统在使用中都具 有各时间段操作密度的不均衡性,比如工程信息管理系统,由于在 月末属于数据统计期,各个工程局下属的予公司、项目部甚至劳务 协作单位都会进行数据的统计和层层上报、审核,此时就是操作高 发期,因此保证每个客户端都能在这时正常的执行操作是非常重要 的。 3 ) 用户操作的低延迟,快响应,避免客户端在执行完一个操作 后的无谓等待。应具有良好的交互性 要完全傲翻以上几点,赣必然要求我们在设计开发和实施过程 中进行性能优化 1 2 2 所面临的问麓 在开发和运行过程中涉及到各种因素,比如开发及运行成本、 周期、跨平台性、网络结构等等,因此在设计性能优化方案中,我 西南交通大学硕士研究生学位论文第3 页 们需要考虑以下闯题: i ) 如何在尽量不提高投入成本的情况下,优化系统结构,提高 响应速度这就是前面提到的性能提升两个方面的差别,从软件角 度进行改进,可以在不提高成本的前提下改善系统性能,同时也是 最全面的,而硬件配置的部署方案依赣予投入的大小,一个最简单 的例子,将服务器内存和c p u 提升一个档次,当然会使系统获得更 多的内存空闯,使用更少的处理时间来执行客户端请求。但却对解 决网络带宽过小,系统资源浪费等问题无济予事 2 ) 如何全面设计优化方案,采用怎样的技术和方法来实现从数 据库处理到w e b 响应到网络数据传输到客户端展现等各个环节的 性能提升 3 ) 如何检验性能优化方案在实际应用中的效果,如何知道它是 行之有效的。 综上所述,理想的优化方寨应该是低成本的、高效的。它应该 要解决的是系统运行各环节的瓶硬,是全面的,丽不局限于某一点。 1 3 本论文研究的主要内容 本文针对工程信息管理系统的现状和需要,与实际应用相结 合,研究并设计一套性能优化方案,该方案应从系统运行的稳定性、 w e b 响应的高效性、并发处理的完整性等各个方面满足系统对运行 性能的要求。 本论文的研究内容主要有: 1 ) 研究工程信息管理系统在实际应用中所体现的为大多数电予 商务系统赝具有的性能目题,并分析其产生原因。 2 ) 选择并研究各种可用于性能优化的技术。提出一个具有充分 灵活性、高效性的性能优化解决方案。主要解决t 由于h t t p 固有的。请求一响应”模式而造成的操作延迟,给 予用户无等待的操作体验 在网络带宽不变的情况下减小传输流量,提高传输效率和传 输能力 西南交通大学硕士研究生学位论文第4 页 尽可能的提高系统处理请求的速度和限度,增强系统的瞬时 负载承受能力 提高系统后台代码的茁壮性以保证运行期的稳定。 3 ) 论证基于a j a x 技术、数据压缩技术、资源控制方法等多种 途径实现性能提升的可行性。 4 ) 根据前面提出的问题和解决方法,分析、设计和实现性能优 化解决方案,并进行有效性验证 1 。4 小结 本章首先介绍了目前的电子商务系统在实际运行中的现状,阐 明了对工程信息管理系统进行性能优化的必要性,接着介绍了设计 一个方案来实现效率优化和性能提升所面幅并需要解决的问题,最 后简要讨论了论文要进行的主要工作 西南交通大学硕士研究生学位论文第5 页 第2 章工程信息管理系统 本章简要介绍一下工程信息管理系统的功能结构,为下面章节 展开系统优化的研究做好铺垫 2 1 系统概述 工程信息管理系统是中铁工程总公司及其下属的工程局使用的 用于工程施工管理的大型商务系统,主要包括对工程施工进度的全 程监控,单位工程的重点管理,劳务协作队伍的定期考核,旌工技 术及文档的分类整理等等,其中: l 、工程施工进度对在建的铁路、房建、公路、水电、市政等 等各种类型的项目进行监控,由上一级单位为下一级单位分配施工 任务( 即计划数据) ,然后下一级单位定期上报调度完成数据和统计 数据,并由上一级单位进行审核,未通过则予以驳回因此,数据 的走向是非常严格的,在系统中,基本分为四个层次,如图2 一l 所 示: 最高级 图2 - i 系统数据走向 这样就完成了对各个项目的计划、调度、统计数据的全程监控, 西南交通大学硕士研究生学位论文第6 页 而在这些数据基础上,系统再提供旌工形象进度、工程自动监控报 警、阶段工期预计等等功能以为决策者提供详尽的辅助管理 2 、单位工程的重点管理对于桥粱、隧道、涵洞、电网、制轨、 路基挡墙等需要重点监控,全面管理的单位工程,系统单独有模块 进行处理,这些工程管理需要细致到每一道工序,比如隧道就有 铺底、上台阶、下台阶、村砌、上灰等很多道工序,每一道工序的 开展是有严格顺序的,每一天都盛须进行施工数撂的处理,丽这些 工作往往还不是一个单位完成,而是多个单位协同麓工,因此,通 过系统进行协调和管理将大大提高工作效率和保证工程质量 3 、劳务协作队伍的定期考核对参与本工程局劳务分包业务的 劳务协作队伍及履约代理入进行定期考核,考核内容包括经营诚信 度考核、现场履约情况考核、资源投入考核等,考核类型分为日常 考核和年度考核,其中: 1 ) 日常考核:需要同图2 - i 所示,采取下级填报,上级考核的 模式,只是同篪工进度管理不同。这里不再有中铁总公司这一级。 考核仅局限于各工程局范围内,但中铁总公司能够进行数据的查阅, 日常考核由用户自定义考核指标和权重,自定义考核公式,不同级 别的单位考核时段不同,项目部一级主要是月度考核和季度考核, 予公司、指挥部一级主要是季度考核和半年考核,面工程局一级则 是抽查。 2 ) 年度考核:仅由工程局这一级完成,在完整收集日常考核数 据后,由系统自动根据日常考核情况进行各项评定并给出劳务队伍 的等级调整建议,在工作人员确认后进行劳务队伍及履约代理人的 等级调整工作,并根据最终确定的下一年度等级给出劳务承包的范 围。年度考核是一个比较复杂的模块,具体还包括证照审查、黑名 单管理等等 4 、施工技术及文档的分类整理这一部分主要管理施工过程中 的各种技术文档、获奖纪录、业主簏组概要、工程图片、施组兑现 等等,虽然其在系统使用中处于一个比较次要的地位,但是由于图 片、文档都属于比较大的内容,往往一张工程图片就是l o 几兆,一 个大的文档比如工程技术总结也在1 0 - 2 0 兆左右,因此其对系统性 能的影响也是比较大的。 西南交通大学硕士研究生学位论文 第7 页 从前述可知,工程信息管理系统不光是重在对某个具体项目旖 工的全面管理,更需要对各级单位的施工进度情况进行实时监控, 以便于在工程进度滞后时及时进行人员及资源投入调整,保证工期 内施工任务的顾利完成,在多个下级单位一起施工耐也需要系统协 调工作进度。另外通过对劳务协作队伍的全谣考核,傲到保证优质 的工程质量,优胜劣汰以提高参与劳务分包工作的单位和履约代理 人的素质 2 2 系统结构 系统模块结构如图2 - 2 所示, 图2 2 系统模块结构 前一节我们已经介绍了图2 2 中4 个部分的内容,这4 个部分是 工程信息管理系统的核心,对在建项目的综合管理都在这里进行, 但如图2 2 所示,在这些操作之前首先需要进行系统配置,建立项 目信息、单位信息、工程指标信息、单位工程工序、劳务协作队伍 信息等等,然后配置各自的管理单位和审核单位等相关信息,接下 来才是对这些项目,单位工程、劳务队伍进行施工数据的监控和考 核,最后进行数据的查询和报表的输出 在了解了系统的模块组成后,来看一下系统的网络结构,在工 程信息管理系统中采用的是多点部署的方式,中铁工程息公司及下 属的各工程局都是整个系统中的一个节点,系统的网络结构如图 2 - 3 所示: 西南交通大学硕士研究生学位论文第8 页 敷据库疆 务器 氍8 朋务器 n t e r n e t 中警公 中铁一局巾铁八扁 圆孙p 如上图所示,每个i 程局和中铁总公司都有各自的服务器和数 据库,但相互之闯可以进行数据的交换和传递,在节点的层次上各 工程局之间是同级的,唯一不同的是总公司这一级。出于对整个系 统数据一致性的考虑,系统中在全中铁总公司范围内,除各局自管 项目外,所有数据涉及的编码都需要在总公司服务器进行统一定义, 各工程局在进行系统配置时通过“g e t ”方式更薪本地数据,一旦总 公司编码信息更改,又采取 p u s h ”方式主动更新各i 程局节点服务 器的数据,另外,中铁总公司还需要对各工程局的工程建设情况进 行整体的把握和管理,因此需要时常对各i 程局的数据进行实时汇 总查询,而各工程局相互闻数据是不可见的,由此可见。数据在系 统中的流向是开放的,多头的,对每个节点来说,既有客户端用户 与系统间的数据交互,同时各个服务器之问也存在数据的实时交换 西南交通大学硕士研究生学位论文第9 页 2 3 小结 本章简要介绍了工程信息管理系统在在建项目管理过程中的功 能及其结构,为下面结合工程信息管理系统讲述性能优化做好铺垫 西南交通大学硕士研究生学位论文 第1 0 页 第3 章性能优化相关技术及方法 本章讨论a j a x 、数据压缩、缓存输出等相关技术,为设计和实 现电子商务系统性能优化方案做好理论铺垫。 3 1 a j a x 技术 3 1 1 什么是a j a x 。a j a x ( a s y n c h r o n o u sj a v a s c r i p ta n dx m l ) 。是指一种创建交 互式网页应用的开发技术,代表了对某些现有技术的组合,它有机 地包含以下内容:基于w e b 标准( s t a n d a r d s b a s e dp r e s e n t a t i o n ) x h t m l + c s s 的表示使用d o m ( d o c u m e n t0 埒e c tm o d e l ) 进行 动态显示及交互;使用x m l 和x s l t 进行数据交换及相关操 作:使用x m l h t t p r e q u e s t 进行异步数据查询、检索;使用 j a v a s c r i p t 将所有的东西绑定在一起,实现对他们的调用和处理【l 】。 3 1 2a i a x 的优势 如图3 - 1 所示,左边是传统的w e b 应用模型,首先用户填写表 单( f o r m ) ,然后提交表单,此时就向w e b 服务器发送一个h t t p 请 求。服务器接收并处理传来的表单,然后根据请求返回一个全新的 网页( h t m l 及c s s 数据) 显然,这样的数据交换过程既浪费了网 络带宽,同时也增加了系统负荷,因为在前后两个页面中的大部分 h t m l 代码往往是相同的,所不同的很可能仅仅是一个t a b l e 或者一 个d i v 的显示,而服务器却需要解析并传送页面的全部内容这个 闯题出在h t t p 协议本身h t t p 是测览器用来与w e b 服务器通信以 检索页面并从浏览器向服务器回发数据的标准该协议是无状态的, 即需由服务器上的代码负责在页面磁新之闻保持用户输入同时由 于每次应用的交互都需要向服务器发送请求,应用的响应时问就依 西南交通大学硕士研究生学位论文第i l 页 赖于服务器的响应时间这也导致7 用户界面的响应比本地应用慢 得多2 l1 3 1 。 而如图3 - 1 右边所示的a j a x w e b 应用模型,用户动作的处理 由传统的提交表单来发出一个h t t p 请求,变为j a v a s c r i p t 调用a j 腿 引擎给用户的回应不用等到服务器处理后返回一一比如简单的数 据校验,在内存中编辑数据,甚至一些导航功能一一都直接由引擎 来处理如果引擎需要从服务器获取数据( 比如提交数据给服务器 处理。加载额外的界面代码,或者获取新数据) ,引擎通常以x m l 格式激发一个异步的请求,用户端完全没有被中断的感觉1 j 叶f 卜 螂 富户蠕澍览舞 用户接口 i j - v - s 口i p t 蔼用l 懒甲搬 a j a x 2 j l 麓 骶b 服务器 数据库、后台避程 麓务端系统 a j a xw e b 应用模型 图2 一l 传统w e b 应用模型与a j s xw e b 应用模型 一个通常的过程是这样的 在用户单击按钮时,使用j a v a s c r i p t 和d h t m l ( 这些都是a j a x 技术的组成部分) 立即更新u l ,并向服务器 发出异步请求,以执行更新或查询数据库当请求返回时,使用 j a v a s c r i p t 和c s s 来相应地更新u i ,丽不是尉新整个页藤i 。 因此,通过利用a j 8 x 提供的与服务器进行异步通信的能力,使 用户从请求响应的循环中解脱出来,不再感觉到有页蕊提交或刷新 ,前; 卞 f饵;, 西南交通大学硕士研究生学位论文 第1 2 页 的过程,也不需要重新加载,应用的数据交抉都被隐藏,客户端从 而得到了更加丰富的操作体验。 3 1 3a j 叠x 相关技术 a j a x 不是单一的技术,而是四种技术的集合表3 - 1 简要介绍 了这些技术,以及它们所扮演的角色 表3 - 1a j a x 相关技术 j a v a s c r i p tj a v a s c r i p t 是适用的脚本语言,甩来嵌入在某种 应用之中w e b 澍览器中嵌入帕j a v a s e r i p t 解 释嚣允许通过程序与测览器的很多内建功能进 行交互a j a x 应用程序是使用j a v a s c r i p t 编写 的 c s s ( 层叠样式表)c s s 为w e b 页面元素提供了一种可重用的可视 化样式的定义方法它提供了简单丽又强大的 方法,以一致的方式定义和使用可视化样式。 在a j 缸应用中。用户界面的样式可以通过c s s 独立修改 d o m ( 文档对象模d o m 以一组可以使用j a v a s c r i p t 操作的可编程 型)对象展现出w e b 页面的结构透过使用脚本修 改d o m ,a j 馘应用程序可以在运行时改变用 户界薅或者商效地重绘页面中的某个部分 x m l h t t p r e q u e s t 对x m l h t t p r e q u e s t 对象允许w e b 程序员从w e b 象服务嚣以后台活动的方式获取数据数据格式 通常是x m l ,但是也可以很好地支持任何基于 文本的数据格式( x m l h t t p r e q u e s t 这个名字取 得实在是饭不恰当) 尽管x m l h t t p r e q u e s t 对 于完成这件工作来说是最为灵活和通用的工 具但还有其他方法也可以从服务器获取数据。 j a v a s c r i p t 就将各个部分粘合在一起,定义应用的工作流和业务 逻辑。通过使用j a v a s e r i p t 操作d o m 来改变和刷新用户界面,不断 地重绘和重新组织显示绘用户的数据,并且处理用户基于鼠标和键 西南交通大学硕士研究生学位论文第1 3 页 盘的交互c s s 为应用提供了一致的外观,并且为以编程方式操作 d o m 提供了强大的捷径。x m l h t t p r e q u e s t 对象( 或者类似的机制) 则用来与服务器进行异步通信,在用户工作时提交用户的请求并获 取最新的数据川。图3 2 显示了这些技术在a j 娃中是如何配合的 图3 2a j a x 的四个主要组件 一、j a v a s c r i p t : j a v a s c f i p t 毫无疑问是a j a x 中的核心技术。它是一种混合了多 种编程思想的通用编程语言,提供了一个表面上与c 系列语言相似 的语法接口。 j a v a s c r i p t 可以简短地描述为一种弱类型的、解释型的和通用的 脚本语言。 弱类型( 1 0 0 s e l y t y p e d ) 意味着变量不需要明确声明为字符串、 整数或者对象,同一个变量可以使用不同的类型来赋值。 解释型( i n t e r p r e t e d ) 意味着不需要编译,源代码本身就可以直 接执行。 通用( g e n e r a i p u r p o s e ) 意味着这种语言适用于大部分的算法和 编程任务j a v a s c r i p t 语言核心支持数字、字符串、日期和时问、数 组、用于处理文本的正则表达式,以及数学函数( 例如三角运算、 随机数生成等) 。 在浏览器环境中,通过j a v a s c d p t 引擎可以访问浏览器的一些 本地功能,例如c s s 、d o m 、x m l h t t p r e q u e s t 对象,这允许页面 开发者通过编程方式在不同程度上控制页面的表现。 西南交通大学硕士研究生学位论文第1 页 二、c s so 无论在传统的w e b 应用还是在a j a x 应用中,c s s 都是一种频 繁使用的技术样式表提供了集中定义各种视觉样式的方法,并且 可以非常方便地设置在页面的元素上样式表可以定义一些明显的 样式元素,例如颜色、边框、背景图片、透明度和大小等。 在传统的w e b 应用中,样式表提供了一种很有用的方法,可以 在某个地方定义在很多页面中重用的样式在a j a x 应用中,我们不 再将应用思考为快速切换的一系列页面,但是样式表仍然是很有帮 助的,它可以用最少的代码动态地为元素设置预先定义的外观。 c s s 样式为一个文档定义显示规刚,通常放在一个单独的文件 中,由应用这些样式的w e b 页面来引用 三、d o m : d o m 能够为j a v a s c r i p t 引擎公开文档( 网页) 通过使用d o m , 可以采用编程方式操作文档的结构。当编写a j a x 应用时,这是一种 特别有用的能力在传统w e b 应用中,我们通常使用来自服务器的 新的h t m i 流来刷新整个页面,并通过提供新的h t m l 来重新定义用 户界面。面在a j f i x 应用中,用户界面的更新主要是使用d o m 来完 成的。w e b 页面中的h t m l 标签被组织成一个树状结构。树的根节 点是标签,它代表这个文档在它内部的标签代表文档的主体部分, 是可见的文档结构的根节点在文档主体之内,有表格,段落、列 表以及其他的标签类型,每个标签之中还可能有其他标签。 w e b 页面的d o m 表示也是一个树状结构,由元素或节点组成, 节点还可能包含很多的子节点。j a v a s c f i p t 弓l 擎通过全局变量 d o c u m e n t 公开当前w e b 页面的根节点,这个变量是所有d o m 操作 的起点 d o m 中元素之问的关系可以看作是h t m l 清单的镜像这种关 系是双向的,修改d o m 将会改变h t m l 标记,随之会反映在页面的 显示上 四、x m l h t t p r e q u e s t 对象 x m l h t t p r e s u e s t 对象的设计目标很明确,就是用来以后台方式 获取数据,这使得发出异步调用的业务使用起来非常流畅。使用其 与服务器进行异步通信一般通过以下步骤完成: 西南交通大学硕士研究生学位论文 第1 5 页 1 ) 向服务器发送请求。 通过x m l h t t p r e q u e s t 对象向服务器发送请求是一件相当直接 的事情我们需要傲的所有事情就是给它传递一个服务器页面的 l i r l ,这个页面将生成数据 2 ) 使用回调函数监视请求。 处理异步通信的第二个部分是在代码中设置一个入口点,以便 在调用结束的时候可以获取结果这遥常是通过分配一个回调函数 来实现的,也就是说,在未来的某个不确定时刻,当结果返回的时 候,将会执行这一段代码在实际应用中,这段代码通常是用于根 据结果更新u l 以展示绘终端用户1 6 j 3 2 垃圾回收机制 a 2 1 n e t 垃圾回收嚣 n e tf r a m e w o r k 的垃圾回收器用于自动管理应用程序的内存 分配和释放。每次使用f l e w 运算符创建对象时,运行库都从托管 堆为该对象分配内存。只要托管堆中有地址空间可用,运行库就会 继续为新对象分配空间。但是,内存不是无限大的最终,垃圾回 收器必须执行回收以释放一些内存。垃圾回收器优化引擎根据正在 进行的分配情况确定执行回收的最佳时间当垃圾回收器执行回收 时,它检查托管堆中不再被应用程序使用的对象并执行必要的操作 来回收它们占用的内存但是它并不是最优的。比如它不能清理应 用程序创建的任何非托管资源,需要手动释放更重要的是垃圾回 收只保证在以后的某个时间终止无用对象这种终止方式的不确定 性会产生什么样的影响呢? 如果程序中为对象在其生存期内分配稀 有资源会出现什么情况呢( 这里提到的。稀有资源”,是指为专属访 嗣而打开的文件、w i n d o w s 对象的句柄和数据库的连接等) ? 作 为个优秀的应用程序,它应当能通过实现对象的析构函数来释放 所有需要的资源。但是,垃圾回收器只是周期性地运作,它可以跟 踪对象的生存期,但它不了解具体如何清理这些资源,因此垃圾回 西南交通大学硕士研究生学位论文 第1 6 页 收器在运行它的析构函数和释放对象时,该对象往往已经有较长时 间没有被使用1 7 1 3 2 2 垃圾回收原理 每次当开发人员使用们w 运算符创建对象时,运行库都从托 管堆为该对象分配内存新创建的对象被放在上次创建的对象之后 垃圾回收器保存了一个指针,该指针总是指向托管堆中最后一个对 象之后的内存空阔当新的对象被产生时,运行库就知道应该将新 的对象放在内存的什么地方同时开发人员应该将相同类型的对象 放在一起例如当开发人员希望向数据库写入数据的时侯,首先需 要创建一个连接对象,然后是c o m m a n d 对象,最后是d a t a s e t 对象 如果这些对象放在托管堆相邻的区域内,存取它们就非常快捧j 。 当垃圾回收器的指针指向托管堆以外的内存空阃时,就需要回 收内存中的垃圾了在这个过程中,垃圾回收器首先假设在托管堆 中所有的对象都需要被回收。然后它在托管堆中寻找被根对象引用 的对象( 根对象就是全局,静态或处于活动中的局部变量以及寄存 器指向的对象) ,找到后将它们加入一个有效对象的列表中。并在已 经搜索过的对象中寻找是否有对象被薪加入的有效对象弓l 用。直到 垃圾回收器检查完所有的对象后,就有一份报对象和根对象直接或 闯接引用了的对象的列表,而其它没有在表中的对象就被从内存中 回收1 9 1 3 3 缓存机制 3 3 1 缓存机镧的优势 通常,应用程序可以将那些频繁访问的数据,以及那些需要大 量处理时间来创建的数据存储在内存中,从而提高性能例如,如 果应用程序使用复杂的逻辑来处理大量数据,然后再将数据作为用 户频繁访问的报表返回,避免在用户每次请求数据时重新创建报表 西南交通大学硕士研究生学位论文第1 7 页 可以提高效率。同样,如果应用程序包含一个处理复杂数据但不需 要经常更新的页,则在每次请求时服务器都重新创建该页会使工作 效率低下 缓存机制的特性就是通过提供所需信息的内存中副本( 而不是 执行直接数据库查询) 提供对频繁请求数据的快速访问,缓存对应 用程序的性能具有最大的潜在影响,利用缓存开发人员可以接受使 用开销很大的控件( 例如,d a t a c , - t i d ) 构建站点时的额外开销,而 不必担心性能会受到太大的影响 i 0 1 在现有电子商务系统的开发环 境中。不管是j a v a 还是n c t 或者是p h p ,都提供了对缓存的支持, 比如p h p 中的e a c 圮e l e r a t o r ,j a v a 中的0 s c a c h e ,由于本文实际应 用基于的工程信息管理系统采用v i s u a ls t u d i o n e t 进行开发,因 此。下面简要介绍一下a s p n e t 的缓存机制。 3 3 2a s p n e t 的缓存机制 a s p n e t 使用两种基本的缓存机制。第一种机制是应用程序缓 存,它允许缓存所生成的数据,如d a t a s e t 或自定义报表业务对象。 第二种机制是页输出缓存,它保存页处理输出,并在用户再次请求 该页时,重用所保存的输出,而不是再次处理该页。 一、应用程序缓存 应用程序缓存提供了一种编程方式。可通过键值对将任意数据 存储在内存中使用应用程序缓存与使用应用程序状态类似但是, 与应用程序状态不同的是,应用程序缓存中的数据是易失的,即数 据并不是在整个应用程序生命周期中都存储在内存中使用应用程 序缓存的优点是由a s p n e t 管理缓存,它会在项过期、无效、或内 存不足时移除缓存中的项还可以配置应用程序缓存,以便在移除 项时通知应用程序l l l l 。 使用应用程序缓存的模式是,确定在访问某一项时该项是否存 在于缓存中,如果存在,则使用如果该项不存在,则可以重新创 建该项,然后将其放回缓存中这样可确保缓存中始终有最新的数 据。 在n e tf r a m e w o r k 中,应用程序缓存通过 一 塑塑奎墨查兰堕堡壅生兰竺迨壅 苎! ! 蒌 _ _ _ _ _ _ _ _ - _ - _ - _ _ _ _ _ _ _ 。_ _ _ _ _ _ 。- _ - 。_ _ _ 。_ 一 s y s t e m w e b c a c h i n g c a c h e 类实现对于每一个应用程序域,都要 创建一个c a c h e 类的实倒,其生命周期与应用程序域的生命周期保 持一致。我们可以利用a d d 或i n s e r t 方法,将数据项添加到应用程 序缓存中,如下所示; c a c h e ”f i r s t ”】= “f i r s ti t e m ”; 我们还可以为应用程序缓存添加依赖项。即将缓存中某一项的 生存期配置为依赖于其他应用程序元素,如某个文件或数据库,使 得依赖项发生更改时,该数据项能够从缓存中移除,例如: s t r i n g d e p e n d e n c i e s = s e c o n d ” ; c a c h e i n s e r t ( , , t h i r d ”。“t h i r d l t c m ”,n e w s y s t e m w e b c a c h i n g c a c h e d e p e n d e n c y ( n u l l ,d e p e n d e n c i e s ) ) ; 当缓存项依赖的元素更改时,a s p n e t 将从缓存中移除该项 例如。如果您的网站显示一份报告,该报告是应用程序通过x m l 文 件创建的,您可以将该报告放置在缓存中,并将其配置为依赖于该 x m l 文件。当x m l 文件更改时,a s p n e t 会从缓存中移除该报 告当代码请求该报告时,代码会先确定该报告是否在缓存中,如 果不在,代码会重新创建该报告。因此,始终都有最新版本的报告 可用。 a s p n e t 缓存支持表3 - 2 中描述的依赖项。 表3 - 2a s p n e t 缓存依赖项 依赖项说明 键依赖项应用程序缓存中的项存储在键值对中键依赖项允许项 依赖于应用程序缓存中另一项的键如果移除了原始项, 嗣具有键依赖关系的项也会被移除 文件依赣缓存中的项依藏于外部文件如果该文件被修改或删除, 项刚缓存项也会被移除 s q l 依赣缓存中的项依蕨于m i c r o s o f ts q ls 盯v e r2 0 0 5 、s q l 项 s e r v e r 2 0 0 0 或s q l s e r v e r 7 0 数据库中表的更改对于 s q ls e r v e r 2 0 0 5 ,缓存中的项可依蓑于表中的某一行 聚合依赖 通过使用a g g r e g a t e c a c h e d e p e n d e n c y 类缓存中的项依 项赖于多个元素知果任何依赣瑷发生更改该项都会从 缓存中移除 西南交通大学硕士研究生学位论文第1 9 页 自定义依可以用自己的代码创建的依赖关系来配置缓存中的项。 赖项倒如,可以创建一个自定义w e b 最务缓存依赖项,当调 用w e b 服务得习一个特定值时。该依赣项麓会从缓存中 移除数据 与之对应的是缓存中数据项的移除。a s p n e t 可以以四种方式 从缓存中移除数据: 1 ) 由于服务器上的内存不足,开始一个称为。清理”的过程。 清理是在内存不足时从缓存中删除项的过程 2 ) 由于缓存中的项已过期,a s p n e t 会自动从缓存中移除这些 项向缓存添加项时,可以设置其过期时间。 3 ) 由于项的依赖项发生了更改 4 ) 通过代码编写的方式显式的移除。 二、页输出缓存 页输出缓存在内存中存储处理后的a s p n e t 页的内容。这一机 制允许a s e n e t 向客户端发送页响应,而不必再次经过页处理生命 周期。页输出缓存对于那些不经常更改,但需要大量处理才能创建 的页特别有用。 页输出缓存提供了两种页缓存模型:整页缓存和部分页缓存 整页缓存允许将页的全部内容保存在内存中,并用于完成客户端请 求。部分页缓存允许缓存页的部分内容,其他部分则为动态内容。 部分页缓存可采用两种工作方式:控件缓存和缓存后替换控 件缓存有时也称为分段缓存,这种方式允许将信息包含在一个用户 控件内,然后将该用户控件标记为可缓存的,以此来缓存页输出的 部分内容。这一方式可缓存页中的特定内容,并不缓存整个页,因 此每次都需熏新创建整个页。 缓存后替换与控件缓存正好相反这种方式缓存整个页,但页 中的各段都是动态的。饲如,如果要创建一个在规定时间段内为静 态的页,则可以将整个页设置为进行缓存如果向页添加一个显示 用户名的l a b e l 控件,则对于每次页刷新和每个用户两言,l a b e l 的内容都将保持不变,始终显示缓存该页之前请求该页的用户的姓 名但是,使用缓存后替换机翻,可以将页配置为进行缓存,但将 页的个别部分标记为不可缓存在此情况下,可以向不可缓存部分 西南交通大学硕士研究生学位论文第2 0 页 添加l a b e l 控件,这样将为每个用户和每次页请求动态创建这些控 件【1 0 1 。 我们可以通过 o u t p u t c a c h e 指令完成对w 曲页砸的输出缓存。 它主要包含两个参数:d u r a t i o n 和v a r y b y p a r a m 。d u r a t i o n 参数用 于设置页藤或控件进行缓存的时间,其单位为秒。如下的设置表示 缓存在6 0 秒内有效: 只要没有超过d u r a t i o n 设置的期限值,当用户访问相同的页面 或控件时,就可以直接在缓存中获取使用v a r y b y p a r a m 参数可以 根据设置的参数值建立不同的缓存例如在一个输出天气预报结果 的页面中,如果需要为一个l d 为t x t c i t y 的t e x t b o x 控件建立缓存, 其值将显示某城市的气温,那么我们可以进行如下的设置: 如此一来,a s p n e t 会对t x t c i t y 控件的值进行判断,只有输入 的值与缓存值相同,才从缓存中取出相应的值这就有效地避免了 因为值的不同而导致输出错误的数据。 3 4 其它 3 4 1 生成静态页面 一般来讲,冈站的页面分为静态页面和动态页面两种。静态页 面的优点是访问速度快,但缺点是内容更新不方便,而且不能实现 服务器与用户之间的交互动态页面则没有这个问题,但由于在向 客户展现的过程中需要服务器进行解析,因此又比静态页面更耗费 服务器资源,也更耗时,因此如果能够将系统中一些不易改变且访 问量较大的页面利用静态页面来展现给用户,就可以省去解析的消 耗从而提高系统性能。 目前生成静态页面主要有这样几种方法: 1 ) 用u r lr e w r i t e ,u r lr e w r i t e 在不同的w e bs e r v e r 中有不 同的实现方法,对于i i s 来说最通常的做法就是用i s a p ir e w r i t e 西南交通大学硕士研究生学位论文第2 1 页 这个i s a p if i l t e r 来实现优点是很方便,简单,有利于开发人员, 缺点是其本身不能真正起到降低数据库压力的作用必须要配合缓 存服务器,才可以真正提升系统运载能力而同时带来的问题是页 面的更新不是实时的,滞后的时闯和缓存策略有关u ” 2 ) 利用模版文件,在生成静态页面时,用标题、内容、作者等 将从数据库读取的动态信息替换掉模版文件中相应的标识,然后用 f s 0 生成相应的静态页面文件。 3 ) 利用n e t 解析,这种方法在页面发生改变时( 新增或更新时) , 利用原有动态两页的解析输出,我们只需要把最终产生的网页代码 截获,然后保存起来我们就可以直接生成静态文件了,这样傲的好 处就是不需要再额外编程,比较直接l l 引。 3 4 2 连接池 建立新的数据库连接有时代价非常昂贵,因为它涉及到分配客 户机和服务器资源、授权用户

温馨提示

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

评论

0/150

提交评论