【delphi开源代码栏目提醒】:网学会员在delphi开源代码频道为大家收集整理了“提高报表中间件处理海量数据的性能 - 硕士论文“提供大家参考,希望对大家有所帮助!
山东大学 硕士学位
论文提高报表中间件处理海量数据的性能 级别:硕士 专业:电子与通信工程 指导教师:袁东风牛文强 20081009 山东大学硕士学位
论文 摘要 本
论文研究的是报表中间件在处理海量数据时,为提高报表数据的展示速度及打印速度的优化方法。
描述的是查看器方和报表服务器方在处理海量数据时的过程分析及编程思路。
随着B/S应用的不断发展,为达到快速开发报表的目的,报表中间件已被广泛运用在软件开发的过程中,经过近几年报表工具的不断完善,目前,较成熟的报表工具已有20多种,但是,这些报表-T具在处理海量数据时,报表的展现效率却非常极低,打印速度更是难以提升,尤其对较复杂的交义报表,当数据量达到万级时,报表的展现速度是3分钟展现30000条数据,这个速度是非常慢的。
本次报表展现大数据量性能优化主要解决海量数据展现及打印的速度问题,以期使报表展现及打印性能得到质的提升。
本课题就是围绕海量数据的报表展现及打印的性能优化而展开的,目的是以目前报表展现效率的主要问题一海量数据展现性能低为契机,通过对各种统计数据和全面的测试数据进行分析,找出影响报表展现速度慢的症结所在,进行展现效率的系统性调整,使报表展现及打印速度达到一个新的水平。
主要以解决十万条数据的报表展现及打印为重点,通过多次压力测试和调整,达到大数据量的报表展现及打印,从而实现优化目标,使报表数据达到目前环境下最优的性能和质量。
通过系统的报表数据分析,了解整个网络中大数据量报表展现在优化前的现状,分析当前大数据量报表展现存在的问题,提出了相虑的解决方案,在实施优化的过程中,又发现了新的报表展现问题,并采取了新的调整措施,使在当前软件环境下,大数据量的报表展现得到了最大的提高。
通过对报表中间件的方法设计及
代码编写,在网络环境稳定的情况下,对报表查看器及报表服务器进行测试,无论是报表展现性能指标还足报表打印性能指标,包括用户投诉,情况都有了很大的改善,整个大数据量的报表展现及打印均实现了飞跃。
山东大学硕士学位
论文 本课题的完成,对其他报表工具在提高大数据量的展现性能及打印性能起到一个 指导作用,凭借对报表工具的深层次的理解,针对提高性能的具体情况,引入系统性 的优化思路,使报表工具在规划初期的漏洞、维护中的疑难杂症以及随着软件运行而 带来的数据不合理性得到彻底解决,从而有效的使报表工具的报表展示性能得到了一个质的转变。
关键词:报表;海量数据;性能;展现;打印2 山东大学硕士学位
论文 ABSTRACT This paper is a study in the statements of middleware to deal with massive data,to improve the statements of the data show the speed and print speed of optimization.Vieweris described in the statements and the server side in dealing with the mass of data analysis and programming ideas. With the B/S application development,to achieve the purpose of the rapiddevelopment of the statements,statements of the middleware has been widely used insoftware development,through statements in recent years,the tool continuously improved,at present,the more mature tools statements have been There are more than 20,however,these statements are a tool in dealing with massive data,the statements show the efficiencyis very low’the printing speed is more difficult,particularly for more complicatedstatements of the cross,when the amount of data to reach 1 0,000,statements To show thespeed of a 1 O-minute show is 1 0,000,the speed is very slow.The statements show largeamounts of data to optimize the performance of the main settlement of printing and massdata to show the speed with a view to making statements to show performance and printquality improvement. This issue is around the IIM略s of dam and print statements showing the performance ofthe launch,aims to present statements to show the efficiency of the main problems—massive data show performance Low as an opportunity,through a variety of statistical dataand comprehensive test data Analysis to identify the impact statements to show the crux ofthe slow,to show the efficiency of systematic adjustments to make statements to show andprint speeds of up to a new level.30,000 to resolve the main data to show the statementsand focus on print,many times through pressure testing and adjustment to the large amountof data displayed and printed statements,SO as to achieve the goal of optimming,SO that thestatements of the current data environment and the best performance Quality.The systemadopted by the statements of the data analysis to find out the entire network of largeamounts of data to show statements in the optimization of the status quo before analyze thecurrent large volume of data to show the existence of statements,the corresponding 3 山东大学硕士学位
论文 ■■●——一I Illllllllll■舅l solutions in the implementation of the optimization process,found,nle new statements show the problem and to take new measures to adjust SO that the current SOftware environment,the large amount of data to show the statement was the largest increase. Through the month of the design and method of preparation of the code,the stability of the network environment,the statements of the viewer and report server to test whether statements to show performance indicators to print statements or performance,includinguser con攀laints,the situation has been very Improvement in the entire large amount of datato show the statements were realized and print leap. 弛e completion of this task,and other statements of the tools in raising large amountsof data to show the properties and print properties has played a guiding role by virtue ofstatements of the tools in-depth understanding to improve performance for the specificcircumstances,the introduction of systematic optimization ideas Tools to make statementsin the early stages of planning the loopholes in the maintenance of diseases,as well as thesoftware and data brought about by irrational to be SOlved SO as to enable an effective toolfor statements of statements showing the performance of a qualitative change. Key words:statements;mass data;performance;show;Print4 原创性声明 本人郑重声明:所呈交的学位
论文,是本人在导师的指导下,独立进行研究所取得的成果。
除文中已经注明引用的内容外,本
论文不包含任何其他个人或集体已经发表或撰写过的科研成果。
对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。
本声明的法律责任由本人承担。
论文作者签名:垫l堡垒整 日 期: 关于学位
论文使用授权的声明 本人完全了解山东大学有关保留、使用学位
论文的规定,同意学校保留或向国家有关部门或机构送交
论文的复印件和电子版,允许
论文被查阅和借阅;本人授权山东大学可以将本学位
论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段保存
论文和汇编本学位
论文。
论文作者签名:褪导师签缚日期:珥 (保密
论文在解密后应遵守此规定) 山东大学硕士学位
论文 第1章 前 言1.1. 课题研究的背景 第零阶段:以自己编写
代码为主。
这个阶段的报表需求还没有被单独的列出来,而足作为信息系统的一部分。
报表生成一般都是项目人员编写程序
代码完成。
可以说,这时还没有报表工具,是报表工具的“史前时代“。
第一阶段:分组报表的时代,正是由于编写
代码生成报表很繁琐,冈此出现了基于分组的报表。
笔者最早接触的是MS Access数据库中内置的报表,它基于数据表或视图,不仅可以生成数据的列表,还可以进行分组、简单的计算。
早期的Crystal Report也是这种报表的典型。
可以说,基本上主要的报表工具,早期都是从这种模式发展而来的。
第二阶段:B/S报表的时代。
基于分组的报表,为快速制作报表提供了方便的工具,但同时也面对着用户不断提高的要求的挑战。
同时,应用系统中,对B/S报表的要求也越来越强烈,于是报表T具逐步进入的B/S报表的时代。
这一时代的特点是,基本上报表工具还是沿袭了传统的方式,但是进行了若干改进与加强,比如增加了单独的交义表的功能,增加了子报表。
同时,普遍开始支持B/S结构。
在这一阶段,著名的报表工具如Crystal Report继续发展,并终‘丁跨入了支持B/S的行列,而许多新的报表T具也如雨后春笋一样冒了出来。
这些T具大都来源于
开源软件,进行包装改造,基本上有两种流派,一类来自予FastReport这种基于
delphi的软件,通过控件方式实现B/S报表,进而将报表计算移至服务器上进行,再改进为支持Linux,另一类是来自-f.Jasper的基y-Java的
开源软件。
但它们共同的特点,就足仍然是传统的分组报表的模式。
第三阶段:新的数学模型的时代,虽然各种报表T具越来越多,功能越来越多,但是其基本模式决定了处理很多复杂报表时仍然会面临很大的困难。
很多时候仍然需 5 山东大学硕士学位
论文要借助大量的程序编码和复杂的SQL语句(存储过程)加以实现。
面对这种问题,就出现了第三代的报表产品,第三代报表产品根据报表的需求设计了全新的数学模型,可以解决报表单元格与数据字段之间的弱关联性,在制作复杂报表时,开发效率与运行效率都高出传统工具数倍。
同时,还有必要提一下表格式的工具,如最著名的Formulal。
这种类Excel的工具,为制作很多报表带来了巨大的便利。
但是,它无法对数据进行展开,所以,长期 以来,它一直是与分组报表互补的一种产品。
而在象润乾报表这样的新一代报表产品中,已经将两种模式统一到了~起,既可以以类似电子表格的方式进行报表的设计,又可以方便地进行数据的展开,从而能够比较完整地满足各种报表的需求。
1.2. 课题研究的意义 报表工具在中国软件开发领域商用已经近十年了,软件技术得到了飞速发展。
目前中国软件集成商用户已达2000万户左右,中国的信息化建设已在飞跃发展。
随着软件基础数据的不断增加,在做大数据量的报表展现时,其展现效率是非常低的。
大数据量的报表数据展现,其优化方法是对报表查看器和报表服务器进行参数采集、数据分析、找出影响网络运行质量的原冈,通过采取相应的技术措施进行参数调整,使网络最优化、效益最大化。
程序设计、
代码优化是提高报表展现效率的必不可少的关键点,丽日常数据库的维护优化则是保持报表展现效率最优化的阶梯。
在报表工具软件市场的竞争中,软件集成商们最关注的几个运行指标为:报表模板的制作效率、报表服务器解析模板的效率、报表展现及打印的效率。
这三个指标的核心问题即是要有一个核心的报表服务引擎和算法优化的报表展示构件。
由该引擎负责报表数据的解析,同时,由展示构件进行报表的展现。
所有的指标也都要通过核心报表引擎优化达剑,尤其是近两年,各大软件集成商紧缩投资,加大软件开发的效率,力图在现有投资规模下,追求最大的利润叫报。
提高了软件运行的质量,同时也维护 了软件开发商的形象,增强了软件丌发商的市场竞争力,扩大了市场份额,从而保证了软件开发商的经济效益。
本课题的完成,对软件开发商的开发效率及运行效率的提高起到了借鉴作用,凭6 山东大学硕士学位
论文借对算法优化深层次的理解,针对网络的具体情况,引入系统性的软件优化思路,使报表中间件在规划初期的漏洞、维护中的疑难杂症以及随着网络运行而带来的系统参数配置不合理性得到彻底解决,从而有效的使报表的运行质量得到一个质的飞跃。
1.3. 课题研究的现状 目前,报表市场上常见的用于报表开发的工具性软件主要有两大类:报表组件(控件)类、西式报表系统,这两大类报表工具应该说都是各有优缺点。
报表组件(控件)类软件通常是ActiveX控件或Java Applet组件,主要解决报表在浏览器中格式化显示和打印的问题,这类软件一般是仿照微软Excel功能实现的报表组件最具有代表性。
其优点足以网格单元格实现报表格式,能够方便的实现复杂的报表格式;其缺点是对数据库的支持能力弱,即使能够自动填充数据库的数据,无法简单实现数据组织复杂的报表类型,只能通过编程逐个单元格填充数据,报表的后期维护工作量大,开发复杂报表时比较繁琐。
由于这类软件重点关注于报表格式方面的功能,缺乏按照一定报表模型组织报表数据的能力,只能通过编程获取报表数据,同时,在展现大数据量时,性能也非常之差。
西式报表系统类软件多是国外成熟的报表系统,最具代表性的是Crystal Report,国内近些年也有类似仿制产品推出,如:数巨报表。
这类报表软件基于西方报表模型设计实现报表,对数据库数据源具有很好的支持能力,能够开发复杂的报表。
当报表格式相对简单和数据组织比较有规律时,可以很方便套用其提供的报表类型轻松实现,这类软件实现中国式报表的封闭网格线是通过其报表元素对象的边框线拼接而成。
冈此,当开发一些格式复杂而且报表含有多个数据源时,往往需要通过复杂的编程才能够实现,同时,在处理大数据量时,性能也比较差。
综上所述,目前报表市场上的这些报表T具都存在着各自的优缺点,但这两大类报表产品都有一个共同的弱点,那就足在处理大数据量的时候,报表展现的性能都足比较差的。
7 山东大学硕士学位
论文 第2章报表工具相关技术论述2.1. 整体结构 报表工具可先实现报表查看器与报表服务器二部分。
报表查看器是以控件形式提供的表现层组件,可嵌入到浏览器中运行并向外提供接口。
应用通过该接口向查看器中设置所要显示的报表数据及格式信息,查看器将数据以指定格式显示在界面上。
报表服务是以类库形式提供的业务逻辑层组件,它负责操作数据库以获取相关报表数据。
报表服务对外提供接口,业务逻辑层的应用组件通过该接口得到报表数据。
整体结构如图“图表1”所示。
表现层 业务逻辑层 ! 数据层 图表1 系统运行时的流程如图“图表2’’所示:8 山东大学硕士学位
论文 子一显点了丁一下一丌下一_}下一j}1下一一{ jI:显施>I —I ¨ “ ;: 。
j }i !卜一取报表数孥一}解析金咆语%! {| {} 查1数据 11l 5} f 显看{报表 } >J{ 、,; l’ 浏览 丁 } { >Ii I r_一一一厂一—r~——T———广一〕 打印 图表2 用户通过浏览器执行“显示报表”操作,应用程序通过报表服务器从数据库服务器中取得数据,并将数据显示在查看器上。
用户可以在查看器上执行浏览及打印操作。
2.2. 服务器架构 在服务器中,一个完整的应用要包龠应用程序、一个报表服务、一个JNDI服务,还要包含一个或多个报表模板文件及数据库连接池,每个数据库连接池都与一个数据库相对应。
另外,报表服务使用一个报表服务配置文件配置运行参数;使用一个l094j配置文件配置日志参数。
具体服务器架构如图“图表3”所示。
报表T具提供报表服务、报表服务配置文件和l094j配置文件。
报表模板、JNDI、数据库连接池、报表服务配置文件、l094j配置文件及l094j生成的日志文件均由应用开发人员维护。
9 山东大学硕士学位
论文 图表3 在进行业务处理时,应用取一个报表数据的序列图如图“图表4”所示: 固 传入模板和A询参数.查询数据() 图表4lO 山东大学硕士学位
论文1.应用程序调用报表服务提供的API接口取报表数据,该过程需传入模板及查询所 需的参数。
2.报表服务解析应用程序传入的模板,取得该报表所用到的数据源名称及相应的 SOL语句(或存储过程),报表服务从JNDI上查得与数据源对应的连接池的引用并 取得连接。
3.报表服务将从模板上取得的SQL语句(或存储过程名)与传入的查询参数组合形成 ‘完整的SQL语句(存储过程名),使用连接与SQL语句(或存储过程)查询数据库状 得报表数据。
注:一个报表中的数据可能存在于多个数据库中。
2.3. 浏览器方(客户方)架构 2.3.1. 浏览器方的功能I)接受B/S模式下web应用传来的数据;2)web方式下以只读方式显示下列五种报表: 固定格式报表、简单扩展报表、分组报表、交叉报表和图表3)打印方面能够进行页面设置、打印设置、打印预览、打印;4)可以导出EXCEL格式的文件;5)支持表达式。
2.3.2. 浏览器方整体架构 浏览器方的架构如图“图表5”所示,由应用、查看器、本地文件系统、打印机及显示器组成。
山东大学硕士学位
论文 图表5 应用为开发人员编写的脚本。
它调用查看器提供的脚本设置报表数据,由Javascript等脚本语言实现。
查看器是由报表工具提供的组件,用于接受应用传来的数据,展示报表。
本地文件系统、打印机及显示器是与查看器相关的环境及外设,分另lJ用于导出、打印及显示报表。
查看器以单线程方式运行,不考虑并发问题。
2.3.3. 查看器的组成 在浏览器方的架构中,由报表工具提供的是查看器控件,它的架构如图“图表6”所示: o—_一A 图表612 山东大学硕士学位
论文2.4. 报表对象 查看器的核心部分,用丁解析并存放应用传入的报表模板、数据及参数,并且根据模板和参数对数据进行扩展和代换,同时调用显示对象的接口将扩展了的数据写入显示对象的显示内容存储区。
报表对象由以下几个部分组成: 报表对象:整个报表对象部分对外的代理。
从报表数据中读取报表信息进行扩展处理,将扩展结果放入显示内容存储区。
针对不同的表格类型采用不同的算法,根据模板对数据进行扩展。
在扩展过程中可能会用到数据辅助处理功能。
报表数据:存放结果集。
数据辅助处理功能:提供XML解析、表达式计算、分组、排序等功能。
2.5. 显示对象 显示内容存储区:存放扩展后,将要显示的报表内容。
查看器中用r丁显示报表的对象,它负责将自身的显示内容存储区中的内容显示到用户界面上,同时提供与用户的交互功能进行分栏、打印设置、页面设置、预览、打印及导出功能。
查看器的运行流程如图“图表7”所示: 13 山东大学硕士学位
论文 应用脚本 查看器 用广 图表7流程如下: 1.应用脚本通过查看器控件提供的API设置报表模板、数据及参数。
2.查看器控件调用报表对象上的方法设置报表模板、数据及参数。
3.报表对象解析传入的信息,并将之扩展。
4.显示对象显示扩展后的报表内容。
5.用户通过显示部分进行打印、页面设置等简单交互。
注:查看器以单进程方式运行。
2.6. 协作关系 针对报表对象,存在以下协作关系14 山东大学硕士学位
论文 ■—件一一一 ·_。
。
。
。
。
。
。
。
。
‘。
‘。
。
-。
。
。
。
。
。
。
。
一 .
上一篇:
网上考试系统的分析与设计
下一篇:
关于大学英语教学