




已阅读5页,还剩61页未读, 继续免费阅读
硕士学位论文-企业门户网站金融报表文档系统设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江大学计算机科学与技术学院 硕士学位论文 企业门户网站金融报表文档系统设计与实现 姓名:周远 申请学位级别:硕士 专业:软件工程 指导教师:孙建伶 20080501 浙江大学硕士学位论文 摘要 摘要 随着I n t e r n e t 的广泛应用,使用W e b 作为信息发布中心成为广大企业和用 户的共同要求。在竞争日益激烈的时代,谁能方便、快捷、有效地把信息传递给 客户,谁就能取胜。因此金融行业如何利用其金融报表发布系统为客户提供可靠、 及时的信息,成为当务之急。 性能和用户体验是基于W e b 应用系统的两个主要问题。本文结合某金融公 司的报表文档应用系统,探讨了富客户端技术以及W e b 性能优化的一般方法, 并通过设计合理的架构和优化代码来改善系统性能,提高系统交互性。 本文介绍了报表文档应用系统的系统架构,选择使用客户表现层、W e b 层、 业务逻辑层和数据库持久层的J 2 E E 多层架构,在应用逻辑层由E J B 来处理复杂 的业务逻辑和数据访问,旨在理顺J a v aB e a n s 体系,形成S e r v i c e 调用体系。 针对客户端提供更丰富、更具有交互性和响应性的用户体验的要求,利用 F l e x 和C a i r n g o r m 富客户技术,简化并改进了W e b 应用程序的用户交互。最后, 论文对系统进行了性能测试,分析了系统的性能问题,验证了报表发布框架的优 点和可行性,并提出了性能优化的方法。 关键词:报表发布系统。系统架构,性能,F l e x ,M V C ,E J B 浙江大学硕士学位论文 A b s t r a c t N o w a d a y s ,I n t e r n e ti su s e dw i d e l yi ne v e r ya r e a ,p u b l i s hi n f o r m a t i o no nt h e W e bt op u b l i cw a st h ec o m m o nd e m a n d so fal a r g en u m b e ro fe n t e r p r i s e sa n d u s e r s I na ni n c r e a s i n g l yc o m p e t i t i v ee r a 。t h ew i n n e r sd e p e n do nac o n v e n i e n t 。 f a s t 。c o s t - e f f e c t i v em a n n e rt ot h et r a n s m i s s i o no fi n f o r m a t i o nt oc u s t o m e r s S o f t w a r es y s t e mi nt h ed e s i g na n dd e v e l o p m e n ts h o u l da n a l y z es y s t e m p e r f o r m a n c ea n di n t e r a c t i v ea s p e c t so ft h ef u t u r eg r a d u a l l y T h e r e f o r e ,t h e c u r r e n tp o p u l a r i t yo ft e c h n o l o g i e ss u c ha sr i c h c l i e n t ,W e bp e r f o r m a n c e o p t i m i z a t i o na n dt h eg e n e r a la p p r o a c h ,t h e nt h r o u g hr a t i o n a ld e s i g no ft h e s t r u c t u r ea n do p t i m i z et h ec o d et oi m p r o v es y s t e mp e r f o r m a n c e T h e n 。ab r i e fi n t r o d u c t i o no ft h ec o m p a n y Sf i n a n c i a ls t a t e m e n t sw a s a p p e a r e d 。i n c l u d i n gi t sr e q u i r e m e n t sa n di t sf e a t u r e s J 2 E Ea r c h i t e c t u r ei Sa m u l t i - l a y e r e d ,e n d t o - e n dp e r f o r m a n c em a n a g e m e n ts o l u t i o n s ,s y s t e m s i n t e g r a t i o nr e p o r t sa n dd o c u m e n t s c h a r a c t e r i s t i c s ,t h e no p t i o n o f u s i n g p e r f o r m a n c eJ 2 E Em u l t i l a y e rs t r u c t u r e ,i nt h ea p p l i c a t i o nh a sv i e wl a y e r , W e b l a y e r , b u s i n e s sl o g i cl a y e ra n dl a s t i n gd a t a b a s el a y e r F o rt h ec l i e n tt op r o v i d ea r i c h e r , m o r ei n t e r a c t i v ea n dr e s p o n s i v eu s e re x p e r i e n c er e q u i r e m e n t s F i n a l l y , t h ec o m b i n e ds t a t e m e n t so ft h ed o c u m e n ta p p l i c a t i o no ft h ea c t u a l s i t u a t i o n ,c r e a t e dat e s tc a s e 。ad e t a i l e dp e r f o r m a n c et e s ta n dt h et e s tr e s u l t s o nt h es y s t e mp e r f o r m a n c ea n a l y s i s ,i n c l u d i n gt h eu s eo fF l e xt e c h n o l o g yw i t h d e s i g na n dp e r f o r m a n c eo ft h eb u s i n e s sl o g i cl a y e rP e r f o r m a n c ei s s u e s ,v e r i f y t h es t a t e m e n t sr e l e a s e dt h em e r i t sa n df e a s i b i l i t yo ft h ef r a m e w o r k ,i m p r o v e a n do p t i m i z et h ew a y K e y w o r d s :W e bp e r f o r m a n c e ,P u b l i s hR e p o r t ,A r c h i t e c t u r e 。F l e x ,M V C ,E J B 浙江大学硕士学位论文 图目录 图目录 图1 1J 2 E E 架构图。3 图1 2J 2 E E 三层结构4 图1 3R I A 体系结构图8 图2 1F l e x 应用程序框架1 6 图2 2F l e x 工作流程图。1 7 图3 1 报表文档系统功能模块图2 7 图3 2 文档报表系统结构图。31 图3 3 系统服务端结构图3 4 图3 4 文件报表系统发布过程图一3 4 图3 5C F I R c l n b o x P r o x y 代码片段。3 7 图4 1M V C 三层关系图4 0 图4 2V i e w S t a c k 实现方式代码片段4 4 图4 3 客户端与服务器端连接拓扑图4 7 图5 1C F I R c l n b o x R O g e t l n b o x l t e m s 性能测试结果5 4 V I 浙江大学硕士学位论文 独创性声明 浙江大学研究生学位论文独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发 表或撰写过的研究成果,也不包含为获得堑姿盘堂或其他教育机构的学位或 证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意。 学位论文作者签名: 同运 签字日期:妒昂年6 月刁日 学位论文版权使用授权书 本学位论文作者完全了解迸姿盘茔有权保留并向国家有关部门或机构 送交本论文的复印件和磁盘,允许论文被查阅和借阅。本人授权逝姿盘堂可 以将学位论文的全部或部分内容编入有关数据库进行检索和传播,可以采用影 印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名: 1 刚亳 签字日期:炒勺年b 月弓日 导师签名: 肋 E v e n t s 图4 1M V C 三层关系图 如图4 1 所示,M V C 模式体现了一种“分治”的思想。模型即相关的数据,它 是对象的内在属性,模型包含应用程序的核心功能,封装了应用程序的状态,有 时它包含的唯一功能就是状态,它对视图或控制器一无所知。视图是模型的外在 表现形式,一个模型可以对应一个或者多个视图,视图还具有与外界交互的功能, 它时应用程序的外观,它对控制器一无所知。控制器是模型与视图的联系纽带, 控制器提取通过视图传输进来的外部信息转化成相应事件,然后由对应的控制器 对模型进行更新,它创建并设置模型。因此,模型的更新与修改将通过控制器返 浙江大学硕士学位论文第4 章报表文档系统客户端设计与实现 回视图,保持视图与模型的数据一致性。 通过把数据模式从各种可以被存取和控制的数据中分离出来可以改善分布 式系统的设计。M V C 设计模式由三部分组成。模型是应用对象,没有用户界面。 视图表示它在屏幕上的显示,即向用户显示的数据和界面。控制器定义用户界面 对用户输入的响应方式,负责把用户的动作转成针对模型的操作。模型通过更新 视图的数据来反映数据的变化。 4 1 2C a i r n g o r m 介绍 C a i r n g o r m 将前台分为v i e w 、e v e n t 、c o n t r o l 、c o m m a n d 、b u s i n e s s 层,v i e w 层基本为界面设计,在用户对界面操作后,v i e w 层调用e v e n t 的事件要求处理, 而c o n t r o l 将事件与事件执行的方法一一对应,c o m m a n d 层执行事件,完成了事 件发生后的界面改变,重新向用户显示。而b u s i n e s s 为发生事件时所需要调用相 应的后台接口的前台业务层。实现了前台的M V C ,是F l e x 的典型架构。主要的 特点包括: 1 全局的数据管理 C a i m g o r m 通过一个单独的M o d e l L o c a t o r 来连接数据与用户界面,基本思 路是全部U I 相关的数据都不是直接设置到组件上,而是通过一个全局的对象借 由绑定来实现。这样做分离了组件、数据以及命令之间的依靠。当有某个命令修 改了某一个数据源之后,不用主动的再去更新组件显示,所有已经设置对应绑定 的组件将会自动更新。 2 全局的事件播报以及响应 在C a i m g o r m 中,程序通过全局的E v e n t D i s p a t c h e r 来播报全部程序相关的 事件,然后对应处理事件的C o m m a n d 则通过F m n t C o n t r o l l e r 在程序初始阶段配 置好与对应事件的监听关系。 3 全局的网络服务资源 关于远程s e r v i c e 的部分,C a i m g o r m 提供了另外一个单独的S e r v i c e L o c a t o r 供程序使用,并通过R e s p o n d e r 来响应服务返回的结果。 4 1 浙江大学硕士学位论文第4 章报表文档系统客户端设计与实现 4 1 3 基于C a i r n g o r m 微架构发布R I A 的优点和缺点 使用微架构C a i m g o r m 的优点在于: 在客户端处理用户动作,减少了客户端和服务端的交互; 封装了业务逻辑和服务端交互; C a i m g o r m 架构其中的模块化概念可以使项目在变大变复杂之后依然可控, 且编码风格统一; 在客户端管理状态并展示该状态到用户界面; 但是,它的主要缺点在于繁琐。由于要分离用户触发事件以及对应的 C o m m a n d 操作,导致几乎每个明显的用户操作都要写一个E v e n t 类,简单来说 C a i m g o r m 里每一个触发事件都要写一个对应的E v e n 类,在C o m m a n d 类中实 现数据解析以及数据绑定。那么,随着程序复杂程度的增加,会出现一堆只是名 字不同的E v e n t 类,以及只为了执行I C o m m a n d 类。 4 2 客户端设计与实现 4 2 1 客户端M V C 中的模型层 M V C 框架把模型与数据操作相分离的思想,增加了代码的重用率,减少了 数据表达,数据描述和应用操作的耦合度,同时也使得软件可维护性,可修复性, 可扩展性,灵活性以及封装性大大提高。这些优点与报表文档系统的客户端设计 要求相吻合。M V C 模式很自然地成为报表文档系统客户端的设计选择。 S t r u t s 和F l e x 都是基于M V C 体系结构的,它们的不同点主要在于S t r u t s 主 要关注M V C 体系架构中的控制器部分。另外,它还提供了J S P 的标签库以帮助 用户在J S P H T M L 的环境工具创建新的视图。F l e x 则主要集中在M V C 体系架构 中的视图这部分,它也提供了另外一些有利于和远程系统进行数据交互及提高系 统安全的控制逻辑。 模型是以A S 形式写成的数据模型。数据模型往往与视图相关联,提供视图 显示的数据,另外它也可以表示系统的状态信息。数据模型是连接控制器和模型 的桥梁。模型可以是A S 中的基本数据类型:b o o l e a n 。s t r i n g 。a r r a y , o b j e c t ,也可 4 2 浙江大学硕士学位论文第4 章报表文档系统客户端设计与实现 以是由这些基本数据构成的用户自己定义的数据结构。这些数据结构以类的形式 表现,可以作为传递给远程对象操作的参数,也可以与远程对象对应,作为操作 所返回的结果。 报表文档系统客户端的数据模型可以分为2 类在整个操作流程中作为系统状 态进行传递的数据对象,和具体一个控件相关联,提供控件显示的数据对象。 创建报表模板的过程就是定制模板各个参数的值的过程,需要一个数据对象 来存储这些参数的值,通过这个数据对象的传递,使得报表模板的各个步骤都能 维护一个共同的数据对象,做到客户端的数据同步。 报表文档系统客户端数据表现方式多种多样,有L i n k B u t t o n 。T r e e , C o m b o B o x 等控件。对于这些复杂控件,可以设计出与它们显示的数据相绑定的 数据对象,同时还设计了自定义的R e p D o c D a t a G n d ,针对显示需求增强了原有 D a t a G r i d 的功能,R e p D o c D a t a G r d 用来显示的是一组复杂数据单元,该组的每 个数据单元有多个字段,每个字段对应R e p D o c D a t a G n d 的一列,即一个数据单 元一个字段的值就是对R e p D o c D a t a G d d 里某一行字段对应列的值,此外增强的 R e p D o c D a t a G r i d 还可以设定每列的列宽。 4 2 2 客户端M V C 中的视图 视图是以m x m l 形式写成的组件。组件可以是F l e x 提供的基本控件,如 B u t t o n ,T e x t A r e a ,L i s t ,C o m b o b o x ,D a t a G d d ,T r e e 等,也可以是由这些控件所组合 的提供一个特定逻辑处理的功能单元。视图是F l e x 所主要关注的部分。与基于 J S P 技术的W e b 应用不同,F l e x 只是控制视图的显示或不显示,所有的视图都 是定义在一个F l e x 应用程序里。用户通过浏览器看来,一个F l e x 应用程序只有 一个页面但是页面的内容在切换。这与基于J S P 的W e b 程序的页面跳转有很大 区别。 在需求分析中,将报表文档系统分为三个子功能模块,它们之间需要进行视 图切换,F l e x 提供了V i e w s t a c k 控件来管理视图的切换。该控件的功能是在一个 时刻,V i e w s t a c k 下的有且只有一个视图能显示。运用V i e w s t a c k ,就能方便地对 4 3 浙江大学硕士学位论文第4 章报表文档系统客户端设计与实现 通用报表系统客户端存在的三种视图切换情况进行实现。 再如,报表中心内的报表由两种分别为一种是基于P N A 的,另一种基于 R e p o r t C e n t e r 的一般报表,图4 2 所示: c t 工:V i e w S t a c | 【i d = ”i n b o V i e w S t a c k nc r e a t i o n P o l i c y = ”a l l 什 s e l e c t e d l n d e x = ”IR e p o r t I n b o x M o d e l L o c a t o r g e t I n s t a n c 旧) s e l e c t e d I n b o x v i e w S t a c k I n d e x o 图4 2V i e w S t a c k 实现方式代码片段 此V i e w S t a c k 中包括了2 个V B o x 控件,可以使用对i d 的捕捉在界面上分别 显示。 另外,F l e x 可以在视图m x m l 中完成搜索、排序和过滤功能,只从全局数据 控制的M o d e l L o c a t o r 中读取数据,在A S 代码或者F l e xS c r i p t 中实现功能,比 如报表中心需要实现的在当前显示的报表中进行关键字搜索。 优点在于减少了与服务端的交互,将操作控制在客户端完成,但是这样造成 了初始化数据时数据量很大,并且需要存储在客户端。 4 2 3 客户端M V C 中的控制器 控制器是与后台服务进行通讯的数据服务,例如远程对象( r e m o t eo b j e c t ) 。 远程对象会从后台取得用户所需的数据,然后将数据返回到视图里,视图会产生 相应的改变。 报表文档系统采用远程对象作为控制器。每个远程对象作为独立的业务逻辑 处理单元负责相关的业务数据的操作。考虑到每个远程对象有些共同的操作,比 如与服务连接s e s s i o n 的获取,创建一个所有远程对象都要继承的父类,由该父 类对共有的s e s s i o n 进行统一管理。 使用F l e xD a t aS e r v i c e 中的调用r e m o t eo b j e c t 方式,在服务端和客户端之 问传输数据,R O 即为前后台的接口。那么首先需要定义通讯R O ,这种对应关 系定义在W e b I N F f l e x f l e x - c o n f i g x m l 中,仍以报表中心为例, “ 浙江大学硕士学位论文第4 章报表文档系统客户端设计与实现 R e p o r t C e n t e r l n b o x R O 的类,则在f l e x - c o n f i g x m l 对应的 在f l e x - c o n f l g x m l 文件中添加好节点之后,接着在m x m l 文件中添加相对应 的字段其中n a m e d 属性对应的名字应当和f l e x - c o n f i g x m l 文件中添加的阶段的 n a m e 属性一致: 便可在组件或者框架中调用R e m o t e O b j e c t 中的方法。而在C a i m g o r m 框架 中,R e m o t e O b j e c t 的定义被统一归类在S e r v i c e L o c a t o r 里。 4 2 4 客户端与服务端交互处理 R I A 技术具有良好的数据交互功能,所以早期的F l e x 就已经具有了多种与后 台的交互方式。F l e x2 0S D K 延续了良好的与后台交互机制,保持并改进了早期 F l e x 提供的三种R P CS e r v i c e s ,并且加入了D a t aM a n a g e m e n t ,M e s s a g e S e r v i c e 构成了F l e xD a t aS e r v i c e s 。F l e x 后台服务器进行数据交万的方式有以下 三种,可以根据自己的需要进行选择。 1 H t t p S e r v i c e 与传统的方式一样,F l e x 可以指定U R L ,向服务器发送H t t p 请求( r e q u e s t ) , 并对回答( r e s p o n s e ) ;进行处理。虽然从理论上说R e s p o n s e 的返回结果可以是各 种类型的,不过为了统一性和扩充方便起见,通常使用x m l 作为返回类型。 2 R e m o t e o b j e c t , 通过R e m o t e o b j e c t ,客户端的F l e x 应用程序可以调用部署在应用服务器上 的j a v a 对象( j a v a o b j e c t s ) d P 的方法,并对返回的结果进行处理。返回结果的类型 可以是基本数据类型、对象、或对象的数组等。 4 5 浙江大学硕士学位论文第4 章报表文档系统客户端设计与实现 3 W e bs e r v i c e 通过W e bs e r v i c e 组件,客户端的F l e x 应用程序可以来调用部署在应用服务 器( 或i n t e m e t 上其他地方的) 上的w e b 服务( W e bs e r v i c e ) 中的方法,并对返回的 结果进行处理。返回结果的类型可以是基本数据类型、对象、或对象的数组等。 H t t p S e r v i c e 和R e m o t e O b j e c t 13 1 是F l e x 中最常用的两种与服务器交互的方 式。选用何种交互方式对系统性能有明显区别。H t t p S e r v i c e 是以x m l 格式来进 行数据传输,而R e m o t e O b j e c t 是以A M F 格式的二进制编码进行传输,在面向 对象编程语言中,效率上具有优势。对比两种方式,可见在同样的情况下, R e m o t e O b j e c t 比H t t p S e r v i c e 具有更高的性能,但H t t p S e r v i c e 的x m l 格式更为通 用。 在报表文档系统中,采取了R e m o t e O b j e c t 方式,在客户端的V O 层中创建对象 类并在服务器端V O 层创建相同数据结构的类文件,比如,建立一个文件V O 类,取名为F I e V O ,在F l e x 的A S 代码中加入: R e m o t e C l a s s ( a l i a s = ”r e p o r t i n b o x v o F i l e V O - ) 】,即用R e m o t e C l a s s 告诉F l e x 该类与一个 远程对象相关联,注意,相关联的类必须有相同的结构,否则将不能识别。 1 系统调用后返回结果的统一封装 在服务器端,对于调用方法的返回结果,统一封装为一个R o R e s u l t V o 类, R o R e s u l t V o 包含了O b j e c t 类型的d a t a 和A r r a y L i s t 类型的e r r o r s , 需要返回结果的方法被调用后统一的将结果存放在R o R e s u l t V o 的d a t a 中, 如果服务器端操作异常。则将异常信息存放在e r r o r s 中,一起返回给客户端的 C o m m a n d 层。 2 客户端对返回结果的解析 客户端接收返回结果后,F l e x 可以自动转换数据类型,对返回的正确数据和错 误信息分别用o v e r r i d er e s u l t ( e v e n t :O b j e c t ) 和f a u l t H a n d l e r ( e v e n t :O b j e c t ) 方法处 理,然后将数据传输给M V C 的视图。 客户端与服务器端相连接的拓扑结构如下,图4 3 , 浙江大学硕士学位论文第4 章报表文档系统客户端设计与实现 图4 3 客户端与服务器端连接拓扑图 4 2 5 基于C a i r n g o r m 客户端实现 以报表中的获取报表为例,服务端调用g e t l n b o x l t e m s ( S t r i n ga p p l d ,S t r i n g d i r ) 方法,从缓存中取出U s e r 以及当前S e s s i o n 信息,调用C F I U s e r P r o x y 类中 的业务逻辑处理。通过f l e x - r e p o r t c e n t e r 项目中从r e m o t eo b j e c t 里抽象出这些 s e r v i c e s 和在a c t u a t e - r e p o r t i n g e b e a n s e j b 项目中抽象出一个P O J O 类;这些类 向低层的被封装的一些j a r 库中调用接1 :3 文件,连接后台支持的数据库。 总体看来,报表中心是一个浏览,共享和构建报表的信息中心,它可以通过 查询来提供用户需要的数据,并且提供全面的报表库,其中包括了很多自动的功 能( 如查看、删除) ,具体功能已在“3 2 1 3 子系统功能“ 中“报表中心“ 加以 分类。 初始化报表中心,即用户刚进入报表中心所得到的显示页面中的数据,在显 示前,即向后台发出报表的读取请求,F l e x 端经过了如下的步骤: R e p o r t l n b o x m x m l 中触发获取报表的事件: 4 7 浙江大学硕士学位论文 第4 章报表文档系统客户端设计与实现 E v e n t 层的方法: 在后台返回用户所需要的数据后,前台F l e x 端在C o m m a n d 层对数据进行 解析,将需要的数据放入全局统一管理的自定义的M o d e l L o c a t o r 类中,命名为 R e p o r t l n b o x M o d e l L o c a t o r ,使用静态方法g e t l n s t a n c e 0 取得U I 显示所需部分。 C o m m a n d 层代码如下:在c o m m a n d 处理中要实现前台传输的执行操作 e x e c u t e 方法和后来返回数据的处理操作r e s u l t 方法, 浙江大学硕士学位论文第4 章报表文档系统客户端设计与实现 最后,在B u s i n e s s 层实现了对后台R O 的映射以及R O 中方法的调用和参数 的传递: 那么,同样的对用户进行打开报表,浏览其详细内容操作和对其中的一个报 表进行删除的操作进行前台编码,调用S e r v e r 端R O 接口。 4 3 客户端性能改进 4 3 1 客户端的不足 报表文档系统己经于去年底投入使用,发现用F l e x 实现富客户端使操作简单 直接,用户可以通过最便捷的方式进行所要执行的操作。 但是在使用和维护中发现了一些问题。无论从用户角度还是开发人员角度出 发,这些问题都是很显得很有意义,值得研究。这些问题的解决既可以为用户提 供日臻完善的系统,对于开发人员来说,也可以使今后的系统维护工作变得容易 一些。 客户端主要存在这些问题:在代码可维护性方面体现为代码冗余,主要表现 在C a i m g o r m 微架构的E v e n t 层和C o m m a n d 层。 代码冗余的危害更多的体现在使得开发人员对系统的维护变得艰难,大大增 4 9 浙江大学硕士学位论文第4 章报表文档系统客户端设计与实现 加了维护成本。代码冗余的危害需要将相同的代码多写一遍,不但文件个数繁多, 而且会给你的修改带来麻烦,对于一个复杂的工程来说修改量极大。 4 3 2 客户端优化 针对报表文档系统现存的客户端,提出了以下的改进方法: 1 可以通过将C o m m a n d 层统一集中为客户端D a o 层,在客户端D a o 层中 实现原本的C o m m a n d 执行处理,然后省去E v e n t 层,直接由m x m l 触发客户端 D a o 层的方法。 2 由于初始化时间的决定因素为U l 以及初始化所调用的逻辑方法,U l 的复 杂度主要在于内嵌部件以及内嵌U I 大小而定,那么,同样的,需要简化U l 的复 杂程度。仅在初始化阶段调用必须的方法,尽可能减少传输。 3 考虑提升R O 和A S 间的数据传输性能,除了改善网络条件以外,减少 R O 的同时调用,减少每次调用传输的数据量;或者使用x m l 作为H t t pS e r v i c e 传输方式来加快传输速度。 4 4 本章小结 在文档报表发布系统的客户端,采用了A d o b e 的F l e x 的富客户端。 在前台主要需要实现本身的排序、过滤、搜索功能;以及与后台交互的报表 读取,报表查看和报表新建、删除功能。 从表现层到业务逻辑层的逐步实现,完成了系统的编码过程,并且通过详细 多次的用户测试,将文档报表发布系统发布给用户使用,用户反馈的结果表明, 文档报表系统,能够实现灵活的业务分析能力;将客户零散的数据统一数据存储、 统一处理、统一分析,数据统一管理的过程将会迅速增进业务的统一管理;灵活 的业务逻辑公式定制能够极大的提升银行业务分析能力,提高经营管理水平。 浙江大学硕士学位论文 第5 章报表文档系统性能分析 第5 章报表文档系统性能分析 5 1 性能测试 在运行已经编译好的程序后,依照第二章所述的性能分析标准对系统进行性 能测试,这些标准包括【1 4 】:1 ) 域名解析时间;2 ) T C P 连接建立时间;3 ) H t t p 请求 及响应时间;4 ) 传送时间;5 ) 页面处理和显示时间五部分;而这里讨论的性能改 进主要是针对系统响应时间的改进,即用户体验的真实模拟,是H t t p 请求及响应 时间与页面处理和显示时间的结合体现。 经过几次本地测试发现,用户浏览文档报表发布系统时,初始获取I n b o x 信 息所需要的时间较长。I n b o x 正是上文主要介绍的模块,因此针对I n b o x ,使用 P T A F 软件进行分析,它是快捷有效的测试工具,从而可以推广到整个系统甚至 整个企业门户网站的性能分析。 首先,按照了项目的设计和实施过程,也相应的将I n b o x 的系统响应时间分 段测试,主要分为:F l e x 页面加载,页面初始化,后台E J B 调用,S Q L 查询, 数据传输返回这些步骤。 在使用的设计架构和技术下,F l e x 应用在客户端的一次向服务端请求的时候 编译F l e x ,服务器把编译的S W F 文件传输到客户端,并在客户端缓存。假设, 客户端再次请求同一个页面,那么F l a s h P l a y e r 15 l 直接加载原本存储于缓存里的 S W F 文件,因此,需要测试:加载时间,即客户端的一次向服务器发送请求时 所需要的时间。第二是运行测试,即需要测试I n b o x 的初始化时间,以及读取数 据的时间。最后,要测试远程对象调用所需要的时间,被称为远程对象测试,三 者之和为I n b o x 的用户体验模拟。 同时,测试需要多次,多种数据,最后为了在不影响测试结果体现的条件下, 简化复杂度,选用取平均值的方法分析测试结果,找出I n b o x 模块的瓶颈所在。 5 l 浙江大学硕士学位论文第5 章报表文档系统性能分析 5 1 1 测试环境以及测试工具 测试环境:配置测试环境是测试实施的一个重要阶段,测试环境的适合与否 会严重影响测试结果的真实性和正确性。测试环境包括硬件环境和软件环境,硬 件环境指测试必需的服务器、客户端、网络连接设备以及打印机,扫描仪等辅助硬 件设备所构成的环境;软件环境指被测软件运行时的操作系统、数据库及其他应 用软件构成的环境。 一个充分准备好的测试环境有三个优点:一个稳定、可重复的测试环境,能 够保证测试结果的正确;保证达到测试执行的技术需求;保证得到正确的、可重 复的以及易理解的测试结果。 测试工具:并发性能测试是在客户端执行的黑盒测试,一般不采用手工方式, 而是利用工具采用自动化方式进行。目前,成熟的并发性能测试工具有很多,选 择的依据主要是测试需求和性能价格比。著名的并发性能测试工具有Q A L o a d 、 L o a d R u n n e r 、B e n c h m a r kF a c t o r y 和W e b s t r e s s 等【16 】。这些测试工具都是自动 化负载测试工具,通过可重复的、真实的测试,能够彻底地度量应用的可扩展性 和性能,可以在整个开发生命周期、跨越多种平台、自动执行测试任务,可以模 拟成百上千的用户并发执行关键业务而完成对应用程序的测试。 测试数据:在初始的测试环境中需要输入一些适当的测试数据,目的是识别 数据状态并且验证用于测试的测试案例,在正式的测试开始以前对测试案例进行 调试,将正式测试开始时的错误降到最低。在测试进行到关键过程环节时,非常 有必要进行数据状态的备份。制造初始数据意味着将合适的数据存储下来,需要 的时候恢复它,初始数据提供了一个基线用来评估测试执行的结果。 在测试正式执行时,还需要准备业务测试数据,比如测试并发查询业务,那 么要求对应的数据库和表中有相当的数据量以及数据的种类应能覆盖全部业务。 模拟真实环境测试,有些软件,特别是面向大众的商品化软件,在测试时常 常需要考察在真实环境中的表现。如测试杀毒软件的扫描速度时,硬盘上布置的 不同类型文件的比例要尽量接近真实环境,这样测试出来的数据才有实际意义。 应用在客户端性能测试的目的是考察客户端应用的性能,测试的入口是客户 5 2 浙江大学硕士学位论文第5 章报表文档系统性能分析 端。性能测试的目的主要体现在三个方面:以真实的业务为依据,选择有代表性 的、关键的业务操作设计测试案例,以评价系统的当前性能;当扩展应用程序的 功能或者新的应用程序将要被部署时,负载测试会帮助确定系统是否还能够处理 期望的用户负载,以预测系统的未来性能;通过模拟成百上千个用户,重复执行 和运行测试,可以确认性能瓶颈并优化和调整应用,目的在于寻找到瓶颈问题。 5 1 2 测试背景 软件测试用例的选择和生成也是软件测试中的一个重要研究领域,测试用例 的质量将直接决定软件测试的科学性和有效性。所谓测试用例选择就是指从所有 的可用测试用例中选出少量典型的测试用例,以达到对测试域的最大限度覆盖。 常用的基于接接口参数的黑箱测试用例选择方法是对系统每个接口参数采用边 际值分析法和等价类划分法等选取一组典型的值,然后在这些取值组合中随机选 取一组测试用例,或者使用一些启发式方法从中进行筛选。本文中将对I n b o x 子 系统进行性能测试,即是模拟多用户并发访问I n b o x ,执行关键检索等业务,分 析其系统性能。 整个I n b o x 的调用流程是: F l e x - - ) A S - - ) R O - ) P r o x y - - ) E J B - ) D a o - - ) D B 相对应的主要文件为: 表5 1 R e p o r t C e n t e r 测试文件 雾。:执行阶段一7 j _ 主要文件“一:? 一7 z 。j “誓二? 鼍j 黟j 一缓 i i ! # F l e x R e p o r t i n b o x m x m l A S R e p o r t C e n t e n b O x D e I e g a t e a s R O C F I R c l n b o x R O j a v a P r o x yC F I R c l n b o x P r o x y j a v a D a o C F I R c l n b o x D A O j a v a D B e x e c u t e Q u e r y 按照这个分析,设置了6 个c h e c kp o i n t 分别在每个阶段结束的位置。例如, c h e c kp o i n to n e 设置为F l e x 的m x m l 文件初始化结束点。 浙江大学硕士学位论文第5 章报表文档系统性能分析 5 2 存在的问题及分析 测试用例:打开B r o w s e r ,进入I n b o x 页面,向服务器发出请求,则服务器 编译S W F 文件,送回到客户端,并在客户端加载并显示。 测试结果,见图5 1 : 图5 1C F I R c l n b o x R O g e t l n b o x l t e m s 性能测试结果 第一部分中红色曲线表示吞吐量,显示了吞吐量随着测试时间变化量,单位 是每秒钟发出的请求。吞吐量是计算机在指定的一段时间内完成的工作总量。曾 经吞吐量是衡量可以并行运行多个程序的商业计算机相对效率的标准。而蓝色曲 线显示了来自客户端的所有请求的总数变化情况,在红色曲线没有覆盖绿色曲线 时,表示有没有传送到,或者传输错误的请求存在,也就是系统发生了错误。 第二部分的绿色曲线显示了发出请求的响应时间; 第三部分的黄色曲线代表了虚拟的用户体验值; 因此,可以直观的发现,系统最终不能承受逐渐增加的用户访问和请求的发 浙江大学硕士学位论文第5 章报表文档系统性能分析 送。那么什么原因导致了红蓝曲线交界处时,性能的变化。 经过了对C P U 、硬盘、l ,O 服务器等的定量测量,发现造成系统瘫痪的关键 问题在于:O r a c l e 存储泄漏( O r a c l eM e m o L e a k ) 和F l e x 客户端缓存问题 O r a c l e 存储泄漏起因是服务器在处理特制的H t t pG E T 命令时没有限制用户 访问部分任意文件。攻击者可以利用绝对或相对文件名在R e p o r t s 错误消息中显 示部分文件内容。当程序为多进程模式时会出现内存泄漏,而且泄漏速度很快,在 单进程模式下( D E F A U 竹) 就没有这个问题;解决的方法:将O r a c l e 的客户端升级 解决这个问题【1 7 l 。 利用客户端缓存对网站进行优化可以将请求的h t t p 报头一起使用,这样可利 用客户端( 例如浏览器) 的缓存。因为服务器先产生L a s t - M o d i f i e d E t a g 标记f 1 8 1 , 服务器可在稍后使用它来判断页面是否已经被修改。本质上,客户端通过将该记 号传回服务器要求服务器验证其( 客户端) 【19 】缓存。 5 3 系统性能改进 通过对测试数据的分析,发现影响用户体验的主要问题在于S W F 文件下载 和初始化时间,以及R O 与A S 问的数据传输时间。因此首先要提高下载和初始 化的性能,分析下载时间,它由网络带宽和S W F 文件的大小决定,网络带宽属 于硬件设备的更新。而S W F 文件的大小可以通过代码的改进实现,比如,使模 块功能分工独立化等。 5 4 本章小结 经过了性能测试软件的测试数据分析,可以发现,经过多方面考虑后所设计 的文档报表发布系统基本能够满足用户的体验需求,在较短的时间响应用户请 求,保证功能的实现。 浙江大学硕士学位论文第6 章总结与展望 第6 章总结与展望 文章总结了作者在攻读硕士学位期间参与的项目开发工作及对软件设计的 研究。系统性能一直是业界广为关注的问题,而如何在系统性能为前提下设计和 实现系统一直是软件开发人员致力思考的问题。 应用程序服务框架基于面向服务的软件设计思想,采用了W e b 服务式实现, 为不同的W e b 应用程序和桌面应用程序提供诸如安全、报表等方面的务。每一 个单独的应用程序只需为相应的模块添加简单的接口调用,而再也不为条目纷繁 的安全规则而消耗大量的开发与测试时间。同时,在用户界面采用富客户端方式, 提高了用户体验。 在基于通用的应用程序服务
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专业烫染培训课件
- 2025年深度强化学习算法对比试题(含答案与解析)
- 护士条例主要内容讲课文档
- 急性心肌梗死的溶栓治疗讲课文档
- 药事管理知识与技能培训课件
- 荥阳育婴知识培训服务课件
- 论中医医疗服务合同9篇
- 思维方式培训课件
- 2025年新能源汽车自动驾驶与智能电网调度优化方案报告
- 2025年保险数字化理赔服务理赔服务与保险业保险服务创新保险服务成本创新报告
- 2022年红河产业投资集团有限公司招聘笔试题库及答案解析
- 美术是什么 详细版课件
- 肺心病(课)课件
- 中国烟草PPT模板
- 急性淋巴管炎的护理查房
- 江苏省综合评标专家库题库
- Java-Web程序设计任务教程全书电子教案完整版课件最全ppt整本书教学教程最新讲义
- 农作物品种试验技术规程玉米
- DBJ50∕T-348-2020 装配式混凝土建筑结构工程施工工艺标准
- 二手车买卖免责协议书范本5篇
- 2022年《国民经济行业分类》
评论
0/150
提交评论