




已阅读5页,还剩52页未读, 继续免费阅读
(计算机软件与理论专业论文)基于j2ee的通用报表系统的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 i 基于 j2ee 的通用报表系统的研究与实现 作者简介: 关鑫, 女, 1984 年 10 月生, 师从成都理工大学黄地龙教授, 2010 年 6 月毕业于成都理工大学计算机软件与理论专业,获得工学硕士学位。 摘要 报表的应用在企业信息化建设中处于非常重要的地位, 它是企业运营和管理 的重要数据反映和决策依据。 当前基于 web 的信息系统发挥越来越重要的作用, 不论是基于 intranet 的企业信息系统还是基于 internet 的电子商务应用,这给传 统模式下报表软件的设计提出了重大的挑战。由于传统的报表系统主要采用 c/s 结构的报表设计器,具有一定的局限性,并且报表的开发是根据用户的需求定制 的,报表处理部分与其它的业务逻辑关联度较大,导致了报表模块与系统的高度 耦合性,可重用性差,对报表及其相关应用的开发和维护需要花费大量的时间和 精力,难以适应开发过程的多样性和变化性,因此,传统意义上的报表设计模式 已经很难满足日益增长的 web 报表开发的需求。 本文研究的通用报表系统,应用了java开源报表引擎jasperreports与可视化 工具ireport,将报表模板和报表数据分离开,用户既能根据自己的需要设计报表 模板,又能按照业务需求自主地选择数据来源,并运用jasperreports强大的报表 功能和丰富的可扩展接口,实现了报表的定制。 论文首先介绍了报表系统的发展现状及本课题的研究意义, 通过介绍国内外 几种比较流行的报表制作工具,分析了当前报表工具应用中存在的一些问题。针 对报表系统解决方案存在的问题, 本文所设计的基于j2ee体系架构的通用报表系 统,使用了mvc设计模式,将控制逻辑、业务逻辑和视图展现三者分开,根据 此设计体系,把通用报表系统分为控制层模块、业务逻辑模块、通用报表模块以 及视图模块四个模块。通用报表模块,实现了报表处理部分与其它业务逻辑之间 的分离,即在业务逻辑模块中,不需要进行报表数据和模板的整合,而是直接将 数据和报表模板转到通用报表模块中处理,将报表功能作为一个单独的模块来设 计,简化了编程工作,提高了系统的通用性、可复用性和可维护性。 关键词:通用报表jasperreportsireportj2eemvc 设计模式 成都理工大学硕士学位论文 ii basedonj2eegeneralreportingsystemresearchand implementation introduction of the author: guanxin, female, was born in october, 1984, whose tutor was professor huangdilong.she graduated from chengdu university of technology in computer software and theory major and was granted the master degree in june, 2010. abstract report used in the construction of enterprise information play a very important role, it is important for business operations and management to reflect vital data and make decision. current web-based information systems play an increasingly important role, whether the enterprise information system based on intranet or internet-based e-business applications is, which presented major challenges to the design of report software in the traditional model. as the traditional reporting system mainly uses c / s structure of the report designer, it has some certain limitations, and report development is customized according to user needs. to a great degree, report processing part is associated with other business logic module, which leads to a high coupling degree of the report module and system, and it has poor reusability. it also needs to spend a lot of time and vigor on the reports and the related application development and maintenance, and it is difficult to adapt to the diversity and changes in the development process. therefore, the traditional report design patterns have been difficult to meet the growing demand for the development of web reports. in this paper, the general reporting system applies the java open source reporting engine called jasperreports and the ireport, which is a visualization tool. the ireport separates report template from report data, so the user not only designs report templates according to their need, but also can independently choose data sources according to the business needs, and by using the powerful reporting capabilities and rich, scalable interface of jasperreports, it can be customized to achieve the reports. the paper first introduces the current development of reporting system and research meaning of the issue, through the presentation of several popular report generating tools at home and abroad, it analyzes some problems in the application of the current reporting tools. for these problems of reporting system solutions, the abstract iii general reporting system designs the architecture based on j2ee, and by using the mvc design pattern, the control logic, business logic and views display are divided the three separate systems based on this design to general reporting system divided. according to the design pattern, the general reporting system is divided into the control layer module, the business logic module, the general report module and the view module. the general report module implements the separation between the report processing part and other business logic parts, that is, in the business logic module, it does not require integrating the report templates and the report data, but the report data and template are directly sent to the general report module, and there they will be integrated. designing the report function as a separate reporting module, it simplifies system programming and improves the versatility, reusability and maintainability of the system. keyword: general reportjasperreportsireportj2eemvc design pattern 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果, 也不包含为获得成都理工大学或其他教 育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名: 年月日 学位论文版权使用授权书 本学位论文作者完全了解成都理工大学 有关保留、 使用学位论文的规定, 有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和 借阅。本人授权 成都理工大学可以将学位论文的全部或部分内容编入有关数 据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 (保密的学位论文在解密后适用本授权书) 学位论文作者签名: 学位论文作者导师签名: 年月日 第 1 章 引言 1 第 1 章 引 言 1.1 选题依据及研究意义 报表作为一种信息组织和分析的有利手段, 是企业信息系统的重要组成部分 之一。 优秀的报表可以实现将数据转化为信息, 为决策提供良好的依据, 为信息的 交换提供直观的表达形式。报表系统( r e p o r t i n gs y s t e m ) 是应用系统中管理数 据、格式化数据并在组织内部和外部分发数据过程的功能模块。它是商业智能策 略的基础, 它能通过 w e b 或者企业级应用程序的方式, 可靠、 安全地向用户提供他 们最需要的信息1。 在当今的企业级应用系统中, 报表系统是了解企业生产、销售等各个环节的 重要依据。系统的信息集成往往要求信息以报表的形式来进行。目前企业级应用 系统, 尤其是基于 b / s架构的管理信息系统( m i s ,m a n a g e m e n ti n f o r m a t i o n s y s t e m ) , 由于计算资源分布的异构特点, 建立一个通用、稳定、易用的报表系统 变得比较困难, 需要考虑的因素很多。当前大部分 m i s系统中的报表模块是根据 客户需求定制的,与实际系统高度耦合,代码可重用性差,而且前期开发工作量 巨大,后期维护艰难,难以适应开发过程的多样性和变化性,无法满足大型企业 不断扩充的适应性、智能型的要求。因此传统意义上的静态报表设计模式已经很 难满足日益增长的网络环境下 w e b 报表开发的需求。 因此,迫切地需要设计一个具有企业信息集成和发布等功能,并且高性能高 效率的企业级报表系统,以加快整个企业级应用系统的开发速度, 提高系统的质 量,满足用户日益增长的需求。 本文的通用报表系统采用 j 2 e e体系架构,应用了 j a v a开源报表引擎 j a s p e r r e p o r t s与可视化工具 i r e p o r t ,分别进行报表模板的设计与报表数据集 的提取,并实现了报表功能模块和业务逻辑模块的分离,大大简化了系统的复杂 度,并运用其强大的报表功能和丰富的可扩展接口,实现了报表的定制,生成和 输出。 1.2 报表系统的研究现状与存在问题 报表的处理是各种信息系统不可缺少的重要组成部分,报表以直观、概括、 精练的图表形式向用户提供有价值的信息。报表系统的应用非常广泛,以独立 成都理工大学硕士学位论文 2 表系统、嵌入式报表系统和复合报表系统三种方式存在。报表的开发,早期主要 由程序员编码实现,后来主要通过第三方软件来开发报表。近年来,随着软件开 发技术的日新月异,报表技术也不断成熟和完善,目前已经出现了一些优秀的且 颇具特色的报表工具软件,但在报表工具应用中也存在一些问题。 1.2.1 报表系统的研究现状 随着企业信息化的加速,大部分企业都需要很多应用软件,而在应用软件中 大部分都需要包含报表模块,而作为其关键基础环节的就是报表开发工具。报表 开发工具的技术是随着计算机信息技术的不断发展而发展的,从早期 dos 下的 cced 到 windows 下的 excel,从原来的 c/s 报表工具到现在 b/s 报表工具,从 原来的单平台报表工具到现在的跨平台的报表工具。 以下扼要介绍一下当前报表 工具的发展现状。 1、水晶报表 水晶报表(crystal reports)是加拿大 crystal decisions 公司创建的报表分析与 生成软件,由于其报表历史比较长,使用的比较广泛 ,在业内算是最专业、功 能最强的报表系统。水晶报表可协助用户在企业网站或应用系统中设计、管理以 及发布报表。它为企业提供了一个扎实的商业能(business intellingence)的 起始点,将零散的重要信息通过高效能的报表,安全地提供给企业内部和外部的 使用者。它的主要功能有:完整的 web 报表制作解决方案,能够制作网络报表; 功能强大,可将报表制作功能与 web 及 windows 应用程序结合;快速的报表处 理功能;可弹性地传送报表;与 crystal reports 商业智能产品家族完全结合等。 但是水晶报表也存在不足之处:(1)水晶报表为传统条带拖拽式的制表模式, 格线对齐困难;不能导入 excel 模板,不能提供类似 excel 的格式刷、公式调 整等自动布局功能;(2)传统的线性报表模型,不支持表格式布局设计;c/s 方式设计的报表模板和 web 方式设计的报表模板不一样,因此对于不同格式的 报表模板来说,很难提供完全一致的报表功能;(3)而 crystal report 的功能本 身也没有可扩展性,这点不足在中式报表应用上尤为突出2。 2、润乾报表 润乾报表是领先的企业级报表分析软件。 它是一个纯 java 的企业级报表工 具,支持对 j2ee 系统的嵌入式部署,无缝集成。它提供了高效的报表设计方案、 强大的报表展现能力、灵活的部署机制,支持强关联语义模型,并且具备强有力 的填报功能和 olap 分析,为企业级数据分析与商业智能提供了高性能、高效率 的报表系统解决方案。润乾报表软件开创性地提出了非线性报表模型、强关联语 义模型等先进技术,提供了灵活而强大的报表设计方式和分析功能,使用户不需 要掌握复杂的专业开发技能,可以直接基于业务术语,随时按自己的需要直接完 第 1 章 引言 3 成各种复杂的报表的制作和数据分析, 真正实现企业报表分析的随需而动。 不足 之处有: (1)swing 的功能不够完善,设计器外观比较丑陋,而且设计过程 中需要写大量的表达式,所以制作起来非常慢; (2)当表达式出错需要调 试时,其调试功能也不是很强大; (3)扩展困难3。 3、百灵报表 百灵报表(birt)是安讯软件的一个开源项目, 它是一组用于 eclipse 的插件, 它能够从数据库中提取信息,分析该信息,然后生成用于报告的总结,图表和分 析。百灵报表(birt)包含两个主要的组件:报表设计和运行时的组件。其报表 设计器是一个基于 eclipse 的开源报表插件, 功能也很强大, 给 j2ee 的 web 应用程序创建漂亮醒目的 pdf 或者 html 格式的报表插件。 birt 具有报 表系统的核心功能特征,如报表版面设计、支持数据库访问和简单控制脚 本等。其优点有:(1)扩展灵活;(2)可指定外部 css;(3)智能化自动布 局;(4)包含表格式和区段式布局方式;(5)样例管理功能。但也存在着不支 持绝对定位的缺点4。 4.、fastreport fastreport 是一个俄国人开发的报表系统,报表设计器的图形化用户界面做 得非常精致,它是典型的控件拖放的设计模式。这种报表的页面模型是两层,对 于复杂的报表则可能过于简单。它支持的页面元素类型比较多,但是报表数据源 是普通的基于 sql 查询的二维表格方式,而且其报表开发模式非常麻烦,当用 户需求经常改变时,程序员们只有不断地修改后台程序。缺点: (1)不能指定外 部 css; (2)不能自动布局; (3)基于 delphi 开发,运行平台受限5。 5、杰表 杰表(即杰创网络报表)是一款国产的网络报表开发工具,也是国内为数不 多的基于纯 java 技术实现的报表开发工具。使用杰表报表平台可以快速构建基 于 web 的统计、查询、分析应用系统,大大加快开发周期,节约预算,具有很 强的二次开发能力,是 j2ee 应用开发商理想的报表开发工具。它采用独立的报 表数据模型,符合 mvc 技术架构,降低了报表引擎的复杂度,提高了数据的可 重用性。布局颗粒度可按行,按列,按单元格进行,既增加了灵活性,也提高了 效率。杰表采用 dom 树方式表示报表数据,使数据可视化更接近问题域,从而 使报表数据的设置、引用、导航更加亲切自然,从根本上减低了学习难度。但是 对国产报表工具而言,仅仅引入 dom 模型是不够的,因为对于国内复杂报表需 求而言, 这只解决了数据层次的问题, 没有解决复杂布局的问题。 其缺点主要有: (1)不能指定外部 css;(2)不能自动布局;(3)扩展困难6。 成都理工大学硕士学位论文 4 1.2.2 报表系统存在问题 通过对当前的各种报表系统解决方案的研究, 目前报表系统存在的问题主要 体现在: (1 )报表种类增多,没有经过统一的规划和管理。 (2 )报表功能被限定在事先提供的报表需求范围之内,生成报表的种类固 定, 虽然使用方便, 但增加报表种类必须改写应用系统代码, 带来系统扩充困难、 成本大的问题。 (3 )对报表格式或数据的微小改动均需要调用报表管理工具,效率不高。 由此可见,我们需要一种既适用于某一应用领域又便于维护、通用性强的 报表形式,使用户可以根据自己的需要来修改和定制一些报表。 1.3 本文研究的主要内容和组织结构 本文主要对基于 j2ee 体系架构的报表系统进行了研究, 应用 java 开源报表 引擎 jasperreports,设计一个 b/s 结构的通用报表系统,该系统将报表模块功能 从业务逻辑中抽取出来,作为一个独立的通用报表模块来设计、实现,通过eb 方式实现了报表的生成、预览与打印,满足了企业级报表系统的需求,提高了软 件的通用性和扩展性。基于上述目标,主要研究以下几项内容: (1)报表系统技术架构 研究了 j2ee 体系架构和 mvc 设计模式,并结合 mvc 架构特点,阐述了 通用报表系统的总体技术架构。 (2)报表设计器 简要介绍了报表设计器 ireport 的报表模板基本元素的定义内容,报表数据 多数据源的等内容设置的问题,并设计报表模板实例。 (3)报表业务处理设计 主要研究了报表系统的业务处理模块的相关功能函数的设计, 并简要介绍了 报表添加、删除、修改,以及报表数据的查询、更新、分析等报表管理功能。 (4)报表生成设计 主要介绍了开源报表引擎 jasperreports 定制生成报表的工作原理, 通用报表 模块函数及其相关接口的设计与调用方法,以及报表各种格式的导出的研究。 (5)系统实现 通过一个具体实例,详细介绍了通用报表系统设计生成报表的过程,最后并 予以报表图例展示。 全文主要分为引言、报表系统技术架构、报表设计器、报表业务处理设计、 第 1 章 引言 5 报表生成设计、以及系统实现六部分,具体的组织结构如下: 第一章:引言。简述了报表系统在当前企业中的研究发展现状,并对一些报 表软件工具进行了对比分析,指出了报表工具存在的问题,提出了本文的重点在 于研究通用报表系统的 mvc 体系架构,报表设计器 ireport 和 jasperreports 定 制生成报表的工作原理的研究,通用报表模块的设计,以及报表多数据源的接口 处理和报表各种格式的导出。 第二章:报表系统技术架构。介绍了 j2ee 体系架构和 mvc 设计模式,结 合这两种架构技术,阐述了通用报表系统的总体架构设计思路。 第三章:报表设计器。主要研究了报表设计器 ireport 的报表模板格式的内 容设置,通过流程图介绍了报表模板设计的流程,并给出了模板设计实例。 第四章:报表业务处理设计。研究了报表业务逻辑模块和 controller 层模块 相关函数和接口的设计,介绍了报表业务模型类图的设计。 第五章:报表生成设计。介绍了 jasperreports 的报表工作原理,通用报表模 块主要功能函数的设计,以及 view 层模块中报表的输出与打印。 第六章:系统实现。简要介绍了系统开发平台,系统的业务流程设计。结合 一个具体的例子,详细地说明了通用报表系统的报表的设计与生成,最后呈现出 不同样式的报表生成文件。 成都理工大学硕士学位论文 6 第 2 章报表系统技术架构 在软件开发中, 系统体系架构决定了一个系统的稳定性、 健壮性、 可扩展性、 兼容性和可用性,它是系统的灵魂。良好的体系架构是系统成功的开端。j2ee 架构是当前主流的架构之一,j2ee 体系结构提供中间层集成框架用来满足无需 太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统 一的开发平台,j2ee 降低了开发多层应用的费用和复杂性。本文研究的通用报 表系统应用了 j2ee 系统架构,依据 mvc 设计模式,系统划分为 4 个模块,其 中把通用报表模块与其它的业务逻辑部分分离开来, 将报表整合处理功能作为一 个单独的模块来设计,实现了系统的简化,提高了软件的可扩展性、可维护性。 2.1 j2ee 体系架构 java 2 platform enterprise edition 简称 j2ee,java 2 平台企业版。主要用于 快速设计、开发、部署和管理企业级的软件系统。 j2ee7是使用 java 进行企业开发的一套扩展规范,它提供基于组件设计、开 发、部署和管理企业应用的解决方案。j2ee 规范必须基于 j2se 平台,它不仅巩 固了标准版中的许多优点,例如一次编译、随处运行的跨平台特性、方便高 效的数据库提供无缝连接的技术 jdbc(java data base connectivity,java 数据 库连接)、能够在 internet 应用中确保数据完整性的安全模式以及支持多线程技 术等,同时还针对 servlet/jsp、ejb、jms、jts/jta、jcat 和 xml 等技术提 供了全面的支持。j2ee 已建立了一套能够使企业级应用开发者缩短软件产品开 发周期的标准架构体系。 事实上,j2ee 已成为企业级开发的工业标准和主流平台。j2ee 为建立具有 高可用性、高可扩充性、易维护性的企业级系统提供了完美的机制和架构模型。 在 j2ee 提供的统一开发平台下,可以大大降低开发多层应用的成本和复杂性, 对于需要获得高可用性、 高安全性以及高可扩充性软件服务而又缺乏资金的企业 来说,j2ee 的中间层集成框架完全可以胜任并满足其要求。同时,j2ee 自身具 备的完备的目录服务支持、高度的安全机制、高效的性能展现等众多优势技术, 为企业平滑集成已有应用系统发挥了巨大作用。 基于 j2ee 的企业级应用系统,不受任何特定操作系统、网络环境、硬件平 台的束缚。应用系统可开发并部署在异构的环境中,并能确保系统的可移植性。 因此,只要符合 j2ee 规范的系统开发一次,即可部署到各种操作系统平台和网 络平台上。j2ee 作为长期的性能稳定的企业级应用系统平台,能保障 724 小时 的不间断服务,以满足企业客户、合作伙伴的需要,是企业理想的运行平台也是 第 2 章 报表系统技术架构 7 internet 全球化发展的客观必然要求。 j2ee 高伸缩性的特点在如今 随需应变 (i bm 公司 2002 年底提出)电子商务战略大行其道的时代,做出了卓越贡献。j2e e 采用负载平衡策略,使系统软硬件资源利用率及性能表现最大化,消除了系统 中的瓶颈。允许多台服务器集成部署,实现可高度伸缩的系统,在保存企业现有 it 资产减少重复性投入的同时,也满足了未来商业应用的需要。 2.1.1 j2ee 模型介绍 j2ee8使用多层的分布式架构模型,模型由组件组成,应用程序的逻辑根据 功能划分被封装在各组件中。由于是采用分布式架构,j2ee 应用中的大量组件 部署在不同的机器中, 通常这些机器具有不同的物理地址。 j2ee 架构一般分为 4 层:客户层、web 应用层、企业组件层(业务层) 、企业信息系统层。如图所示 描述了 j2ee 架构中典型的多层应用架构模型。 图 2-1j2ee 架构的多层应用模型 (1)一个 j2ee 客户层软件可以是基于 web 的,也可以是基于 application (应用)的。web 客户端由 web 应用层的 web 组件动态生成 web 页面,主要是 html 文件和 xml 文件。客户端用户在使用 j2ee 服务时,无需安装多余软件, 只要计算机上装有一个 web 浏览器即可,如 ms internet explorer、netscape、 mozilla firefox,等等。基于应用程序的客户端,可以为用户展示比 web 客户端 更为丰富的人性化的图形界面,如 java awt/swing 开发的图形用户界面。web 客户端通过 web 应用层中的 jsp/servlet 进行通信,而应用程序客户端则可以跳 过 web 组件层直接访问运行在企业组件层的 enterprise javabeans。 (2)web 应用组件层提供的服务主要依赖于 jsp 页面或是 servlet。jsp 和 servlet 都是 j2ee 应用技术中的重要组成部分。jsp 页面由 html 文件、java 程 成都理工大学硕士学位论文 8 序片段和 jsp 标签构成, 以 servlet 的方式执行。 servlet 是 web 应用开发的基础。 它完全用 java 语言开发, 是 java 平台上的 cgi 技术。 它运行于服务器端的 j2ee 容器中,具有很高的效率,能够动态地加载,动态地生成 web 页面。servlet 擅 长于流程控制和事务处理,提供的扩展服务功能可为企业定制灵活的开发策略。 web 应用层主流的服务器有:tomcat、resin 等。 (3)企业组件层主要是负责处理企业的业务流,并且将相关的业务逻辑封装 在 enterprise javabeans 中。这一层提供了 ejb 的开发、部署和运行时的管理环 境。 每一个 ejb 都是一个可重用的组件。 ejb 架构定义了 3 种 enterprise javabean 类型:会话 bean、实体 bean 和消息驱动 bean。其中,会话 bean 又分为有状态 会话 bean 和无状态会话 bean。实体 bean 可以进行自行状态管理,也可以交由 ejb 容器进行管理,两种方式都为了完成实体 bean 的持久性。消息驱动 bean 始终处于无状态。三种类型的 enterprise javabean 有着不同的生命周期。企业组 件层采用的主流服务器有: weblogic、 jboss、 sun application server、 websphere, 等等。 (4)企业信息系统层的特点是有数据库系统的支持。企业信息系统软件主要 包括企业内传统信息系统如财务系统、crm 系统、数据库系统和 erp 等。 2.1.2 j2ee 核心技术 在 j2ee 平台中,包括了众多的技术,以便对开发者提供更为全面的支持。 (1)servlet 技术 servlet 是 web 应用开发的基础。 它完全用 java 语言开发,是 java 平台上的 cgi 技术。它运行于服务器端的 j2ee 容器中,具有很高的效率,能够动态地加 载,动态地生成 web 页面。servlet 擅长于流程控制和事务处理,提供的扩展服 务功能可为企业定制灵活的开发策略。 (2)jsp 技术 其本质仍是 servlet,只是两者创建方式不同。jsp 文件由 html 文件、java 程序片段和 jsp 标签构成。 jsp 将首先通过分析器生成相应的 servlet 源文件, 然 后再对此 servlet 文件进行编译运行。jsp 与 servlet 一样,具有相当高的运行效 率。 (3)ejb 技术 enterprise java bean 简称 ejb,它运行在 ejb 服务器上,是由客户端调用的 非可视化远程对象。ejb 拥有一系列协议,允许自身被远程访问或在特定服务器 上进行安装或部署。允许将服务安全性、事务行为、并发性(支持多个客户端同 时访问的情况)和持久性(其状态的生命周期)的主要方面授权给 ejb 服务器 上其所在的容器。ejb 提供的事务机制非常周全,但事务机制带来的缺点是性能 第 2 章 报表系统技术架构 9 的降低。ejb 支持分部式应用系统。在 ejb 中定义了三种不同类别的 enterprise bean:会话 bean、实体 bean、消息驱动 bean。ejb 的完整执行过程为:客户端 通过 jndi 检索 home 对象的引用,jndi 返回 home 对象的引用,请求创建一个 新的 ejb 对象,创建 ejb 对象,返回 ejb 对象,调用相关业务逻辑方法,调用 enterprise bean。 一般 j2ee 应用服务器都是 ejb 服务器, 比如: weblogic、 jboss、 sun application server、websphere 等。 (4)jms 技术 java message service,java 消息服务。jms 是 j2ee 平台的重要组成部分。 它是一组标准 java 应用接口,可以在各种企业通信系统间使用,提供创建、发 送、接收、读取消息等服务。为确保 java 应用能够和各种消息中间件进行异步 通信, jms 定义了一组公共的应用程序接口和相应语法来满足开发需求。 通过使 用统一的 jms 接口集,开发人员可以无须掌握消息产品的使用方法,就来编写 和操纵各种消息中间件。jms 支持点对点、发布/订阅式的异步消息通信机制, 并能够最大限度地提升消息应用的可移植性。 (5)jndi 技术 java naming and directory interface , 简称 jndi。 j2ee 应用程序组件通常分 布在不同物理地址的机器上, 所以需要一种机制以方便客户端使用者查找和引用 j2ee 组件及企业系统资源。在 j2ee 体系中,使用 jndi 技术定位各种对象,包 括 ejb 对象、数据库驱动对象、jdbc 数据源对象及消息连接对象等。jndi 函 数库为应用程序提供了一个统一的接口来完成规范定义的目录操作, 如通过对象 属性来查找和定位该对象9。 2.1.3 j2ee 的优势 j2ee 为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机 制。主要体现在以下几个方面: (1)保留现存的 it 资产:由于企业必须适应新的商业需求,利用已有的企 业信息系统方面的投资,而不是重新制定全盘方案就变得很重要。这样,一个以 渐进的(而不是激进的,全盘否定的)方式建立在已有系统之上的服务器端平台 机制是公司所需求的。j2ee 架构可以充分利用用户原有的投资,如一些公司使 用的 bea tuxedo、ibm cics, ibm encina,、inprise visibroker 以及 netscape application server。这之所以成为可能是因为 j2ee 拥有广泛的业界支持和一些 重要的企业计算领域供应商的参与。每一个供应商都对现有的客户提供了不用 废弃已有投资,进入可移植的 j2ee 领域的升级途径。由于基于 j2ee 平台的产 品几乎能够在任何操作系统和硬件配置上运行, 现有的操作系统和硬件也能被保 留使用。 成都理工大学硕士学位论文 10 (2)高效的开发:j2ee 允许公司把一些通用的、很繁琐的服务端任务交给 中间件供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应 地缩短了开发时间。高级中间件供应商提供以下这些复杂的中间件服务: (3)状态管理服务:让开发人员写更少的代码,不用关心如何管理状态, 这样能够更快地完成程序开发。 (4)持续性服务:让开发人员不用对数据访问逻辑进行编码就能编写应用 程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维 护。 (5)分布式共享数据对象 cache 服务:让开发人员编制高性能的系统, 极大提高整体部署的伸缩性。 (6)支持异构环境:j2ee 能够开发部署在异构环境中的可移植程序。基于 j2ee 的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基 于 j2ee 的程序只需开发一次就可部署到各种平台。这在典型的异构企业计算环 境中是十分关键的。 j2ee 标准也允许客户订购与 j2ee 兼容的第三方的现成的组 件,把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。 (7)可伸缩性:企业必须要选择一种服务器端平台,这种平台应能提供极 佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。基于 j2ee 平台的应用程序可被部署到各种操作系统上。 例如可被部署到高端 unix 与大型 机系统,这种系统单机可支持 64 至 256 个处理器。(这是 nt 服务器所望尘莫 及的)j2ee 领域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶 颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的 系统,满足未来商业应用的需要。 (8)稳定的可用性:一个服务器端平台必须能全天候运转以满足公司客户、 合作伙伴的需要。因为 internet 是全球化的、无处不在的,即使在夜间按计 划停机也可能造成严重损失。若是意外停机,那会有灾难性后果。j2ee 部署到 可靠的操作环境中, 他们支持长期的可用性。 一些 j2ee 部署在 windows 环境 中,客户也可选择健壮性能更好的操作系统如 sun solaris、ibm os/390。最健壮 的操作系统可达到 99.999%的可用性或每年只需 5 分钟停机时间。这是实时性很 强商业系统理想的选择。 2.2 mvc 设计模式 mvc 是 xeroxparc 在八十年代为编程语言 smalltalk80 发明的一种软 件设计模式,至今已被广泛使用。最近几年被推荐为 sun 公司 j2ee 平台的设计 模式,并且受到越来越多的使用 coldfusion 和 php 的开发者的欢迎。 第 2 章 报表系统技术架构 11 2.2.1 mvc 架构设计 mvc(model-view-controller)设计模式分为分成三个核心部件:模型、视图、 控制器。model层实现系统中的业务逻辑,通常可以用javabean或ejb来实现。 view层用于与用户的交互,通常用jsp来实现。controller层是model与view之间 沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可 以解释用户的输入并将它们映射为模型层可执行的操作。其体系结构如下: 图 2-2mvc 体系结构 mvc的处理过程为:首先用户在视图的界面上发出请求,视图把请求转发 给控制器,控制器调用相应的模型来处理用户请求,模型进行相应的业务逻辑处 理,并返回数据。最后控制器调用相应的视图来显示模型返回的数据。 2.2.2 mvc 的优势 在最初的 jsp 网页中,像数据库查询语句这样的数据层代码和像 html 这 样的表示层代码是混在一起的。 经验比较丰富的开发者会将数据从表示层分离开 来,但这通常不是很容易做到,它需要精心地计划和不断地尝试。mvc 从根本 上强制性地将它们分开。尽管构造 mvc 应用程序需要一些额外的工作,但是它 给我们带来的好处是毋庸置疑的。mvc 的优点表现在以下几个方面10: (模型) 抽象系统应用的功能 封装系统的状态 提供使用系统功能的方法和路径 管理数据的存储和一致性 当数据发生变化时通知相关部分 (视图) 抽象数据表达 表示针对用户的数据 维护与 model 数据的一致性 (控制器) 抽象用户和系统的事件的语意映射 把用户输入翻译为系统事件 根据用户的输入和上下文情况选择合适的 视图显示数据 状态查询 修改通知 修改状态 选择视图 用户动作 方法调用 事件 成都理工大学硕士学位论文 12 (1) 可以为一个模型在运行时同时建立和使用多个视图。变化-传播机制可 以确保所有相关的视图及时得到模型数据变化, 从而使所有关联的视图和控制器 做到行为同步。 (2) 视图与控制器的可接插性,允许更换视图和控制器对象,而且可以根 据需求动态的打开或关闭、甚至在运行期间进行对象替换。 (3) 模型的可移植性。因为模型是独立于视图的,所以可以把一个模型独 立地移植到新的平台工作。 需要做的只是在新平台上对视图和控制器进行新的修 改。 (4 ) 潜在的框架结构。可以基于此模型建立应用程序框架,不仅仅是用在 设计界面的设计中。 2.3 系统总体架构设计 通用报表系统采用了 j2ee 体系架构,使用了 mvc 模式,其主要由控制层 模块(controller) 、业务逻辑模块、通用报表模块以及视图模块(view)组成。 该系统具有良好的稳定性、可扩展性、可移植性、可维护性与跨平台性。报表系 统的体系结构如图所示: 图 2-3 通用报表系统体系架构 第 2 章 报表系统技术架构 13 2.3.1 业务逻辑模块设计 该模块主要完成报表请求参数的提交和获取, 报表数据的生成及报表样式模 板的选择。主要流程为:首先用户发出报表请求信息,该请求信息包括一些报表 请求参数以及生成报表文件的最终格式,如pdf、word、txt等格式。然后把该 请求页面提交到controller层,controller层调用业务逻辑模块的功能函数来完成 报表信息的提取,并把获取结果返回到控制层。model层主要定义了一些实体类 和相应的操作类来实现报表数据的查询分析、筛选、更新等业务操作。 2.3.2 controller 层模块设计 controller层模块主要功能是调用业务逻辑模块的相关类和函数处理请求信 息,把获取到的报表属性集、报表数据集、以及报表最终格式文件等信息,送到 通用报表模块中去处理。 其业务流程为:根据接收到的请求信息,调用model层的业务逻辑模块的相 关类和函数获取相应的报表参数,选取报表样式模板文件,并调用功能函数从数 据源中获取报表数据集,数据源可以是数据库、xml文件、csv文件或其它格 式的数据文件,得到数据集后,最后把报表参数、报表样式模板,数据集以及最 终报表格式等信息发送到通用报表模块去实现报表整合输出。 2.3.3 通用报表模块设计 通用报表模块主要完成报表样式模板和报表数据信息的整合, 并根据最终报 表文件的格式输出成不同的报表文件。model层的报表通用模块主要定义了一些 实现报表整合和输出的类。它的业务流程为:首先model层的业务逻辑模块的相 关功能函数提取报表属性集、 数据集以及最终报表样式等内容, controller层从业 务逻辑模块获取报表参数,报表样式模板,数据集及报表最终输出格式,然后调 用model层的通用报表模块中相应的函数实现报表的整合和输出。 2.3.4 view 层模块设计 该模块主要是通过http连接, 将通用报表模块生成的最终报表返回客户端, 并予以显示报表。主要流程为:通用报表模块对报表模板和报表数据进行整合, 并调用输出函数实现报表的生成,然后连接http服务器,把生成的报表返回到 浏览器,客户端浏览器获得响应后显示报表并打印,完成用户的请求。 成都理工大学硕士学位论文 14 2.4 本章小结 本章主要对系统架构体系技术进行了研究,详细介绍了 j2ee 体系架构和 mvc 设计模式的核心内容,并基于上述体系技术,阐述了通用报表系统的总体 架构设计,分为业务逻辑、controller 层、通用报表及 view 层四个设计模块。下 面将依据划分的四个模块,分别从报表前端设计部分、报表业务处理部分、报表 生成部分三个方面,来具体讲解通用报表系统的详细技术思路和架构。 第 3 章 报表设计器 15 第 3 章报表设计器 报表设计器是一种制作报表的辅助工具, 具有报表设计、 显示和打印等功能。 其主要任务是设计报表布局和确定数据源,报表布局确定了报表样式,而数据源 则为布局中的控件提供数据支持。它可以用来设计web报表模板,包括web报表 版面设计、数据源定义、数据重组(过滤、计算等)的函数设计、web报表被引用 参数的定义等。 报表设计器的目的是通过图形界面向导设计出需要的报表模板文 件。 本系统采用ireport作为报表设计器。它的主要优势为:ireport是用于定义 jasperr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民法典培训课件教学
- 国画类考试试题及答案
- 2024鸡西市恒山区大恒山街道社区工作者招聘考试试题
- 湖北省宜昌市二中2026届高一化学第一学期期中统考试题含解析
- 2026届全国百校名师联盟高二化学第一学期期中综合测试模拟试题含解析
- 国开期末考试《行政领导学》机考试题及答案
- 2025年抖音知识题库及参考答案(完整版)
- 2025年污水检测试题及答案
- 2025年重庆市车管所事业单位招聘考试模拟试题及答案解析
- 2025年科学道德与学术规范知识竞赛决赛题库(含答案)
- 一线班组质量奖申报材料
- 蜜雪冰城加盟合同(2025年版)
- 消毒供应质量控制指标(2024年版)
- ACS合并消化道出血治疗策略
- 数字化转型视角下H公司订单管理优化策略研究
- 精益管理看板
- 汽车产品初期流动管理计划
- 《战略资源稀土》课件
- 《过程审核讲义》课件
- 中医内科学虚劳培训课件
- DB41T 2086-2020 加油加气站内电动汽车充电设施建设技术规范
评论
0/150
提交评论