数据归档系统的设计与实现_第1页
数据归档系统的设计与实现_第2页
数据归档系统的设计与实现_第3页
数据归档系统的设计与实现_第4页
数据归档系统的设计与实现_第5页
免费预览已结束,剩余45页可下载查看

下载本文档

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

文档简介

1、硕士专业学位论文数据归档系统的设计与实现Design and Implementation of Data Archiving System作者:XXXX导师:XXXX北京交通大学学位论文版权使用授权书本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特 授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索, 提供阅览服务,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅 同意学校向国家有关部门或机构送交论文的复印件和磁盘。学校可以为存在馆际 合作关系的兄弟高校用户提供文献传递服务和交换服务。(保密的学位论文在解密后适用本授权说明)学位论文作者签名:导师签

2、名:签字日期:签字日期:北京交通大学硕士专业学位论文数据归档系统的设计与实现Design and Implementation of Data Archiving System作者姓名:XXXX学 号:XXXX导师姓名:XXXX职 称:副教授工程硕士专业领域:软件工程学位级别:硕士北京交通大学致谢本论文是在导师的悉心指导下完成的。导师严谨的治学态度,精益求精的工 作作风,对我影响深远。不仅使我掌握了基本的研究方法,更对我未来的技术研 究开拓了思路。在此,谨向导师表示崇高的敬意和衷心的感谢!本文的顺利完成,还离不开曾经一起共事的各位同事,由于大家的通力合作 与互相帮助,才使我们的项目能够顺利完成

3、,本文的研究、设计、编码、调试以 及文档资料的整理等工作,都倾注了大家的心血,在此我衷心的感谢他们。最后,向所有参与我的论文评审和答辩的老师表示诚挚的谢意。摘要随着互联网的发展,作为企业与外界的主要沟通桥梁,电子邮件、即时消息 已经成为企业员工、企业与客户以及企业与供应商之间沟通的重要工具。而因此 产生的大量邮件和即时消息数据成为企业重要的数据资产,越来越多的企业开始 重视对于这些数据的保存和备份。目前电子邮件、即时消息作为有效的法律依据 已经被越来越多的国家和地区所认可,相关的法律法规也已经出台。如何保护和 有效使用这些重要数据资产,已经成为越来越多的中大型企业面临的问题。二六 三企业通信作

4、为国内排名前三的邮件业务服务商,为客户打造企业级邮件和即时 消息归档服务系统,旨在解决企业客户对于邮件和即时消息数据的归档、查询、 公证等需求,并具有免硬件部署、数据加密认证、按归档数据量收费等优势。本系统采用J2EE的S2SH开发框架和多层架构设计,基于二六三 SaaS平台 对邮件服务模块及即时消息服务模块的数据接口进行整合,实现了带有复杂交互 的数据归档系统。在系统的实现过程中,作者作为本项目的产品经理,主要负责 产品设计和项目管理,作者负责应用统一建模语言和面向对象思想进行需求分析 和模块设计,并且采用 Axure工具进行了快速原型设计。本文中按照软件工程的 需求分析、系统概要设计、系统

5、详细设计和系统测试流程详细阐述了系统的设计 过程和实现方法。通过用例图对系统进行需求分析,通过数据库概念、逻辑和物 理结构设计三个步骤阐述数据库设计过程,通过类图、时序图和活动图详细说明 了归档策略、日志审核、归档数据公证、用户权限管理等业务模块以及基于 ElasticSearch服务器实现的邮件数据检索、基于 HTTP Range的数据导出下载等系 统功能的设计与实现。目前本系统已经投入使用,作为企业级邮件归档系统,客户通过浏览器简单 的一步操作即可开通归档服务。本系统提供了高效的邮件归档服务、有效的公证 认证机制、完善的账户权限管理体系。按实际归档数据空间数收费,按天结算, 无需企业预先支

6、付大笔资金,确实做到为企业省钱。本数据归档系统从部署、提 供服务、数据公证到收费成本都切实解决了企业对于重要数据存储使用简便、具 备法律效力、收费合理的需求,开启数据归档服务的新视角。关键词:数据归档;J2EE;数据公证;数据检索;曰asticSearchABSTRACTWith the development of internet, as the main communication bridge, email and real-time messagealready become important tools among enterprise employee, client and

7、vendor. Massive data generated with email and real-time message become important assets of the enterprise. More and more enterprises start pay attention to the data storage and backup. Nowadays, as legal basis, email and real-time message have been accepted by most countries and areas and relevant l

8、aws and regulations have already published. The topic of how to protect and utilize these important data assets becomes the mainly concerning issue for middle-large size enterprises. As one of the top three email industry service providers, 263 enterprise communication provides enterprise level emai

9、l and real-time message archive eco system aiming to resolve the client requirements to archive, search or notarization email and real-time message. And it has advantages such as no need of hardware deployment, data encrypt authorization, charged by the amount of archived data and so on.This system

10、uses the S2SH development framework based on J2EE and multi-layer architecture design, based on the 263 SaaS platform, integrated email service module and message service module' data API, implemented complex interactive data archiving system. During the implementation of the system, the author

11、utilized UML and object-oriented analysis and design methodology to accomplish the requirements analysis and the module design. In this thesis, the author described the design process and realization method of the system according to the flow of software engineering which includes requirement analys

12、is, system outline design, detailed design and system test. The author analyzed the requirements using use casediagrams and described the design process of database through database conception design, logic design and physics design. Also by using class diagrams, sequence diagrams and activity diagr

13、ams, the author explained the design and implementation of the system' m odules such as archiving strategy module, log audit module, archival data notarization module and user authority managementmodule. And the email data retrieval based on Elastic Search server, export and download based on ra

14、nge HTTP data.At present, the system has been put into use, as an enterprise mail archiving system, customers can open the file service through a simple operation of the browser. This system provides efficient mail file archiving service, effective notary authenticationmechanism and perfect account

15、authority management system. It charges by the actual data spaceand by day. There ' s no need for companies to pay an amount of mOney advance. It saves money for enterprises indeed. From the deployment, providing services, data notary fees to the cost, for enterprises, this data archiving system

16、 effectively satisfy the needs of using important data storage simply, data with legal effect and charge reasonably. It provides a new view of data archiving service.KEYWORDS : Data archiving; J2EE; Data notarization; Data retrieval; ElasticSearch目录摘要iii.ABSTRACTiv.目录61 绪论91.1 论文背景和意义91.2 国内外发展现状101

17、.2.1 国内现状101.2.2 国外现状111.3 论文主要内容和结构安排 121.4 本章小结132 关键技术概述142.1 分布式全文检索技术方案选型 142.2 快速原型开发152.3 相关技术162.3.1 MVC 模式和Struts2162.3.2 数据持久化和Hibernate172.3.3 Spring 的 IoC192.3.4 jQuery 框架与 jqGrid插件192.3.5 数据缓存与 Memcached202.3.6 ElasticSearch212.4 本章小结223 数据归档系统需求分析233.1 系统总体描述233.2 系统功能性需求分析233.2.1 归档策略

18、模块233.2.2 数据检索和保全模块 253.2.3 日志审计模块273.2.4 账户设置模块283.2.5 子账户管理模块283.2.6 归档信息概览模块 303.3 系统非功能性需求分析313.4 系统预期达到的目标323.5 本章小结334 数据归档系统概要设计344.1 架构设计344.1.1 系统体系结构设计 344.1.2 系统整体架构设计354.1.3 全文检索服务架构 364.2 系统功能模块设计374.2.1 归档策略功能384.2.2 数据检索功能394.2.3 日志功能审计414.2.4 账户设置414.2.5 子账户管理414.2.6 账户概览414.3 数据库设计4

19、24.3.1 数据库概念结构设计424.3.2 数据库逻辑结构设计424.3.3 数据库物理结构设计434.4 用户界面设计464.5 本章小结475 数据归档系统详细设计与实现 485.1 用户登录功能的设计与实现 485.1.1 实现用户登录功能的业务工作流程 485.1.2 用户登录功能类的设计495.1.3 用户登录功能实现效果515.2 归档策略功能的设计与实现 525.2.1 实现归档策略功能的业务工作流程 525.2.2 归档策略功能类的设计535.2.3 归档策略功能实现效果 545.3 邮件检索与保全功能的设计与实现 555.3.1 实现邮件检索与保全功能的业务工作流程 55

20、5.3.2 邮件检索和保全功能类的设计 575.3.3 邮件检索和保全功能的实现效果 595.4 日志审计功能的设计与实现 605.4.1 实现日志审计功能的业务工作流程 605.4.2 日志审计功能类的设计615.4.3 日志审计功能的实现效果 625.5 账户概览功能的设计与实现 635.5.1 实现账户概览功能的业务工作流程 635.5.2 账户概览功能类的设计645.5.3 账户概览功能的实现效果 655.6 本章小结666 系统测试676.1 系统测试方法676.2 系统测试工具676.3 测试用例设计与测试结果分析 706.3.1 功能性测试用例716.3.2 非功能性测试用例 7

21、16.4 本章小结727 总结和展望737.1 总结737.2 展望73参考文献75作者简历77独创性声明78学位论文数据集791绪论随着互联网的发展,电子邮件、即时消息数据已经成为企业员工、企业与客 户以及企业与供应商之间沟通的重要数据资产和具备法律效力的证据。目前电子 邮件、即时消息归档的相关法律法规也已经出台。如何保护和有效使用这些重要 数据资产,已经成为越来越多的中大型企业面临的问题。1.1 论文背景和意义随着互联网的发展,作为企业与外界的主要沟通桥梁,电子邮件、即时消息 已经成为企业员工、企业与客户以及企业与供应商之间沟通的重要工具。而因此 产生的大量邮件和即时消息数据成为企业重要的

22、数据资产,越来越多的企业开始 重视对于这些数据的保存和备份。目前电子邮件、即时消息作为有效的法律依据 已经被越来越多的国家和地区所认可,相关的法律法规也已经出台。如何保护和 有效使用这些重要数据资产,已经成为越来越多的中大型企业面临的问题。二六 三企业通信作为国内排名前三的邮件业务服务商,为客户打造企业级邮件和即时 消息归档服务系统,旨在解决企业客户对于邮件和即时消息数据的归档、查询、 公证等需求,并具有免硬件部署、数据加密认证、按归档数据量收费等优势。本文实现数据归档系统,作为企业级数据归档系统,客户通过浏览器访问 Web 页面简单的一步操作即可开通归档服务。归档管理员不仅能够设置归档数据的

23、类 型,包括邮件数据、消息数据和邮件消息数据;还能够设置归档时间范围;以及 对哪些用户的数据归档;并将以上设置生成归档策略保存,提升管理员效率。归 档系统中可以设置多个管理员,并进行权限分配,实现不同身份管理员负责不同 模块。为确保归档系统数据的法律效力,我们与上海东方公证处(上海东方公证 处是目前国内最大的公证处之一)合作建立了公证认证机制,并采用 MD5数据加 密技术解决了归档数据的公证问题。在收费方面,按实际归档数据空间数收费, 按天结算,无需企业先行支付大笔资金,确实做到位企业省钱。数据归档从部署、 服务到数据公证、收费确实解决了企业对于重要数据存储使用简便、具备法律效 力、收费合理的

24、需求,开启数据归档服务的新视角。1.2 国内外发展现状随着企业对电子邮件这一通信方式的依赖越来越大、相关法律法规的增加以 及人们提升系统生产率的需要,这些因素都起到了推动电子邮件归档系统使用增 长的作用。虽然电子邮件归档应用呈现增长趋势,但是电子邮件归档系统成本相 对较高,很多企业都放弃了应用这一系统。而且,电子邮件归档产品在用户体验 设计方面依然存在不足,也经常会发生厂商之间的混乱竞争。尽管存在这样那样 的问题,电子邮件归档市场仍然有很好的前景。许多中大型企业内部沟通,外部 联系都是通过电子邮件完成的,这种对电子邮件的依赖性才产生了追踪信息的需 求。机构高层每天可能会有上百甚至上千条重要的信

25、息往来,因此需要一种找到 所需信息的简单方法。带有搜索工具的电子邮件归档系统能够帮助满足他们的这 一需求。大型企业对电子邮件归档系统的需求要比中小企业强烈得多,目前中小 企业并不看重邮件归档业务,并忽视其存在的风险。然而调查发现,去年那些规 模在500人以下的企业中有15%的企业被要求提供员工电子邮件5。阻碍电子邮件归档系统普及的另一个因素就是成本。通常一个企业级电子邮 件归档系统的部署成本在10000美元左右,而且成本很快就会增长到 6位数甚至 是超过100万美元。在金融服务等行业,如果企业没有强大的电子邮件归档策略, 那么他们可能面对的是高额的罚款,所以他们马上会发现在这方面的支出是有必

26、要的。其他行业的企业机构可能并不会轻易地意识到这一点,尤其是在困难的经 济形势下。随着市场不断成熟,邮件归档厂商们也在尝试着简化他们的系统、简化配置 和削减成本。服务提供商则通过“归档即服务”的形式将基础架构成本分配到大 量用户之间来降低应用电子邮件归档的成本。这类服务现在已经占到了归档市场 收入的1/3,预计到2015年将达到2/3。1.2.1 国内现状更加本土化是国内产品最大的优势,严格遵从国内的信息保存规范,完全依 照国内用户使用习惯来设计产品。毫无疑问,国内产品比国外产品更加具有亲和 力。在价格上,国内产品也有很大的优势。国内的研发和人力等成本都远远低于 国外,这样使得产品的整体成本就

27、下降很多,在价格上就有很强的竞争优势。但与国外产品相比,国内产品的某些缺陷也十分突出,技术不够先进,架构 不够成熟,系统不够稳定,扩展功能相对较少,这些问题并不是一朝一夕能够解 决的,也十分影响客户的应用体验。目前国内主要的企业邮件服务商都推出了自 己的邮件归档产品。比如腾讯企业邮箱的归档功能可以根据用户需求,对邮件数 据进行在线归档和分类管理,并达到长期保存的效果。腾讯企业邮箱还可以根据 用户需求,针对长期使用的邮件在该数据不改变的情况下,把邮件进行系统归类 到腾讯的储存硬件中。1.2.2 国外现状由于邮件归档产品本身源自国外,所以国外的归档厂商有着丰富的经验,国 外的归档产品也有着成熟的架

28、构,这一点是国内众多年轻的归档产品所无法比拟 的。在法规遵从方面,国外对信息的保留要求更高,监管力度更大,为满足对萨 班尼斯法案的遵从,国外的归档产品在这方面是不遗余力的,所以它的法规遵从 也更加出色。大多数国外的邮件归档企业都有着广泛的产品线,邮件归档产品是其大量产 品中的一个,这样有利于企业所需要一系列产品的配套使用和集中管理,在购买 价格上也存在一定的优势。而国外产品的不足在于产品的架构和使用以国外客户的感受为依托,本地化 难免有所欠缺;中国有自己的企业内部控制基本规范,而国外的归档产品不见 得能完全符合国内的法规;有着广泛产品线的企业对旗下产品难免厚此薄彼,不 会把全部精力放在归档产品

29、上,这就大大降低了归档产品的精深程度。更不用说 一些邮箱服务器的生产厂商所自带的归档产品,它对邮箱服务器显然是附属性质 的,一旦服务器出现问题,就无法保证归档产品的灾备效果。以下是目前市场现有的电子邮件归档产品和服务:(1) Barracuda Networks,推出了预置产品 Barracuda Message Archiver 价格为 每位用户75美元89美元之间。(2) CA,推出了预置产品 CA Message Manage价格为每位用户 70美元。(3) C2C Systems,推出了预置产品 Archive One,价格为每位用户15美元40 美元之间。(4) EMC,推出了预置产

30、品 EMC EmailXtender,价格为每位用户40美元。(5) GFI,推出了预置产品 GFI Mail Archiver 6 for Exchange ,价格为每个邮箱7美兀10美兀之间。(6) Google,推出了 Google Message Discovery服务,价格为每位用户每年 25 美元45美元之间。(7) MessageSolution,推出了预置产品 Enterprise Email Archive,价格为每位用户13美兀80美兀之I可。(8) Proofpoint,推出了 Proofpoint Email Archiving 服务,价格为每位用户每年 10美元20美

31、元之间。(9)赛门铁克,推出了两款预置产品:Storage Management Advanced Edition价格为每位用户51美元;E-Discovery Standard Edition,价格为每位用户47 美元。1.3 论文主要内容和结构安排本论文以构建高效易用的企业邮件和即时消息数据归档系统的设计和实现为 研究对象,从论述项目背景开始,基于相关技术和需求分析对系统进行概要设计, 然后依据解决方案及实际情况对整个项目进行详细设计,模块实现以及模块的功 能测试,最终完成项目的实施和运行。本论文共分为七章,具体内容如下:第一章,引言。本章主要介绍论文的背景,分析论文的目的和意义,最后阐

32、述了论文的组织结构。第二章,介绍本项目所使用的部分关键技术。介绍了包括S2SH框架,jQuery框架和相关前端插件,Memcached,日asticSearch等系统应用的主要技术框架以及 分布式全文检索技术方案选型介绍。第三章,对数据归档系统进行需求分析。对系统所涉及的业务和功能进行分 析,通过对需求的分析设计系统的组成,分析系统功能,制定系统的功能性和非 功能性需求,并完成系统的模块划分。第四章,对数据归档系统进行概要设计。包括系统的总体结构设计,通过系 统架构、模块划分、数据库设计等方面介绍总体设计方案。第五章,对数据归档系统进行详细设计和实现。主要包括系统用户登录、归 档策略配置、归档

33、数据检索、日志审计、邮件保全、账号情况概览和管理员权限 管理的详细设计和实现方式的介绍。第六章,对数据归档系统进行测试和验证。介绍了系统各个模块的单元测试 和集成测试,验证系统的正确性和完整性。第七章,总结与展望。总结本文所做的工作成果以及工作中遇到的问题,并 且对未来进行展望。1.4 本章小结本章首先介绍了项目的背景及意义,然后通过分析当前企业邮件和即时信息 数据归档系统的国内外发展现状,阐述了开发项目的必要性。最后介绍了本论文 的内容以及论文的组织结构。2关键技术概述本章主要对开发实现数据归档系统的理论基础和相关技术进行介绍,首先第 一部分介绍了分布式全文检索技术方案选型。第二部分阐述了快

34、速原型开发的原 理和方式。第三部分对系统开发过程中所使用的关键技术进行介绍说明。2.1 分布式全文检索技术方案选型从数据归档的业务需求层面考虑,归档数据全文检索的高效性,能够提升企 业归档数据操作系统的操作效率,我们将此项技术作为数据归档业务的关键技术 进行了分布式全文检索技术方案选型,此全文检索技术达到企业级应用的标准, 具有行业公认高性能、高稳定性、代码标准化程度高等优势,本章将对全文检索 技术选择及相关技术进行介绍。随着计算机产业的发展,以计算机存储设备为载体的电子信息愈来愈多,这 些信息大致可分为两类:结构化数据和非结构化数据,结构化数据指的是诸如企 业财务账目和生产数据、学生的分数数

35、据等等,非结构化数据的则是一些文本数 据、图像声音等多媒体数据等等。经过几年的发展,全文检索从最初的字符串匹 配程序已经演进到能对超大文本、语音、图像、活动影像等非结构化数据进行综 合管理的大型软件。由于内涵和外延的深刻变化,全文检索系统已成为新一代管 理信息系统的代名词,衡量全文检索系统的基本指标也逐渐形成规范。搜索引擎 应该是全文检索技术最主要的一个应用。目前,搜索引擎的使用已成为排在收发 电子邮件之后的第二大互联网应用技术。搜索引擎起源于传统的信息全文检索理 论,即计算机程序通过扫描每一篇文章中的每一个词,建立以词为单位的倒排文 件,检索程序根据检索词在每一篇文章中出现的频率和每一个检索

36、词在一篇文章 中出现的概率,对包含这些检索词的文章进行排序,最后输出排序的结果。全文 检索技术是搜索引擎的核心支撑技术。分布式计算是将大的计算任务(需要巨大的计算能力或需处理巨大的数据量) 分解成许多小的部分,并分配给许多计算机进行处理,最后将所有小部分的计算 结果综合起来得到最终的结果1。本项目为二六三企业通讯有限公司的项目,为了满足对归档邮件内容进行检 索的功能,且尽量节省开发资源,项目组决定使用3个市面上相对成熟的开源搜索引擎作为全文检索的搜索引擎。我们选择的搜索引擎有Lucene、Xapian和ElasticSearchLucene是一个开放源代码的全文检索引擎工具包,一个全文检索引擎

37、的架构,提供了完整的查询引擎和索引引擎。Lucene的目的是为软件开发人员提供一个简 单易用的工具包,从而在目标系统中更加方便的实现全文检索的功能,或者是以 此为基础建立起完整的全文检索引擎。由于只提供工具包,所有的功能需要自行 开发实现,开发工作量较大。Xapian是一个用C+编写的全文检索程序,Xapian除了提供原生的C+编程 接口之外,还提供了 Perl, PHP, Python, Java和Ruby编程接口和相应的类库。 但是使用者较少,同时经过测试,创建索引的性能较低。日asticSearch是一个基于Lucene构建的开源,分布式, RESTful设计的搜索 服务器。RESTfu

38、l是一种软件架构风格,设计风格而不是标准,只是提供了一组设 计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设 计的软件可以更简洁,更有层次,更易于实现缓存等机制。基于 RESTful的设计 用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通 过HTTP使用JSON (JavaScript Object Notation是一种轻量级的数据交换格式。 它 基于ECMAScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使 用了类似于C语言家族的习惯,包括C、C+、C#、Java JavaScript Perl、Python 等。这些特性使J

39、SON成为理想的数据交换语言。易于人阅读和编写,同时也易于 机器解析和生成。)进行数据索引。ElasticSearch分布式搜索框架包含了分布式搜 索,分布式索引,零配置,自动分片,索引自动负载,自动发现, RESTful风格接 口等特性,配置灵活,管理工具多,使用方便。性能能够满足我们的需求。根据测试ElasticSearch创建索引速度能达到 800封/S左右,ElasticSearch检索 在100线程并发下单次搜索平均时间为 300ms左右,大部分都能在500ms以内完 成搜索。曰asticSearch性能优秀,具包含了分布式搜索,分布式索引,零配置,自动分 片,索引自动负载,自动发现

40、,RESTful风格接口等特点,是个准实时的搜索引擎。 能够满足我们的需求,最终我们选择 ElasticSearch作为全文搜索引擎,并以此搜 索引擎技术为基础,建立全文搜索技术方案。2.2 快速原型开发Axure是一个专业的快速原型设计工具,让负责定义需求和规格、设计功能和 界面的专家能够快速创建应用软件或 Web平台的线框图、流程图、原型和规格说 明文档。作为专业的原型设计工具,它能快速、高效的创建原型,同时支持多人 协作设计和版本控制管理。Axure的可视化工作环境可以让你轻松快捷的以鼠标的 方式创建带有注释的线框图。不用进行编程,就可以在线框图上定义简单连接和 高级交互。在线框图的基础

41、上,可以自动生成 HTML原型和 Word格式的规格文 件网。Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具, 可以有效地进行图片编辑工作3。Photoshop有很多功能,在图像、图形、文字、 视频、出版等各方面都有涉及。Photoshop是目前主流的设计软件,也是互联网企 业中UI设计师用的最多的设计软件。它在图像上的表现能力能够更好的诠释用户 界面的设计。简单来说,用Axure耗费的人力成本更高,但可以生成 HTML原型,这样可 以使整个原型带一些动态效果,并且有连贯性,比较适合做演示及给后续开发做 引导。而Photoshop画出来的图更漂亮,与Axure配合

42、使用,能够将漂亮的设计与 动态效果整合,让用户能体验到相当于真是软件的使用感受,增强客户的代入感, 这种需求讨论方式能极大的减少后期因沟通问题造成的开发风险。本章后边的原 型中都会给出实例。2.3 相关技术2.3.1 MVC 模式和 Struts2MVC设计思想就是要将系统逻辑代码,数据访问和用户界面进行分离,对系 统进行MVC的结构分层,不仅有助于管理复杂的项目代码,同时也简化了分组开 发工作。在团队开发工作中,不同的开发人员可同时对用户界面、控制器逻辑层 和业务逻辑层进行开发。确保了系统的低耦合性,提高了代码的可重用性,提高 了系统的维护性,有利于软件工程化管理。Struts2是被广泛应用

43、的MVC框架Struts的下一代产品,但是它是整合了 Struts 和WebWork的技术而开发出来的全新的 MVC框架。Struts2在Struts框架的基础 上,引用了 WebWork的设计理念,使用拦截器的机制来处理用户的请求,这样的 设计,解决了 Struts原有的和Servlet耦合的缺点。Struts2框架由核心控制器、业务控制器和用户实现的业务逻辑组件三部分构 成。在这三部分中,Struts2提供了核心控制器 StrutsPrepareAndExecuteFilter,该控 制器在Web应用中,主要负责拦截所有的用户请求,当用户请求到达时,该控制 器会过滤用户请求,如果用户请求满

44、足过滤器条件,则将请求转入Struts2框架进行处理。StrutsHttpServ 旧 tRoqg 敏曲点lenConlu*mmllpA M馅巾叩gr 1 /AclionMapperAclionPrcxy_ InterMptor 2T IIntereeptof 31Tag SubsystemhMl Dod.«estruU.AinlConfiguraticnManagerAetion Action . Invocation! ResultMtereepgr 3TemplaliBJEP FncMarhni VchjuttA <hcfnt«rc«ptor 21Bn

45、larooplor 1>| HtlpServlEtResponme卜ServM F rteraSinus Gxe *rCHwplora User gmjM图2-1 Struts2体系结构图Figure 2-1 Architecture Diagram of Structs2Struts2框架的请求处理流程如下:(1)当用户向Web应用发送请求时。(2)核心控制器拦截请求,判断是否转入Struts2框架处理。基于框架的Action映射配置文件,Struts2的Action映射器将请求转发到 对应的业务逻辑控制器进行处理。(4)调用控制器的相应函数处理业务。(5)控制器处理完成后,将处理结果

46、输出到视图。(6)应用将视图返回到浏览器显示。2.3.2 数据持久化和 Hibernate数据持久化就是将内存中的数据模型和存储模型进行互相转化的过程。数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、XML、二进制流等。使用数据持久化有如下好处:(1)提高程序代码重用性,当更换数据库时,只需要修改相应的配置文件,不 必修改程序代码。(2)避免在代码中出现大量的SQL语句,大大提高程序的可读性。持久化技术可以缓存数据,减少程序对数据库的访问,提高程序运行效率。Hibernate是一个开源的 ORM 框架,ORM 是 Object Relational Mapping 的缩写, 它实

47、现了面向对象编程语言中不同类型数据之间的转换。ORM也可以更简单的理解为将数据库表和面向对象类建立映射关系。Hibernate框架基于ORM的思想和技术进行实现的,它对 JDBC进行了非常轻量级的对象封装,使得开发者可以使 用面向对象编程的方法来操纵数据库。创建和错毁都相当耗费资源,通簿一个系统内一个数据库只创建一个类似于JDBC中的Connection复杂的查询操作稍后介绍Configuration Hibernatexfg,xm<Session Fa doryt. L ,7* UseHibnvxml创建Session& 始人执行 、,1Transactionsave dele

48、te update get I mit()J session.close()结束图2-2 Hibernate工作原理图Figure 2-2 Principle Diagram of HibernateHibernate框架中数据持久化机制如下:在系统程序对数据库进行操作的时候,Hibernate框架使用Session会话来完成 数据的增、删、改、查等功能。(1)向数据库提交数据程序对一个对象进行保存操作时,Hibernate框架先将数据保存到Session会话 中,之后再由Session会话在相应时候把数据保存到数据库。(2)从数据库中查询数据在进行数据查询之前,Hibernate会根据配置文

49、件决定是否清理缓存,如果不 清理缓存,程序只需要查询Session会话中的数据即可。否则,Hibernate框架会从 数据库中查询相应的数据并缓存到Session会回话中。数据持久化为系统程序与关系型数据库之间的交互访问提供了一种高效的解 决方案,它封装了数据访问细节,开发者通过面向对象的思想就可以简单易行的 和数据库进行交互。2.3.3 Spring 的 IoCSpring 框架是一个轻量级的 IoC (Inversion of Control)和 AOP(Aspect Oriented Programming)的J2EE容器框架,它主要用于管理项目中JavaBean的生命周期,使 用IoC

50、容器具有更加容易组合对象直接或间接关系,面向接口编程,降低耦合等 优点。Spring AOPSource-levelmeta da LaAOP iinfrasIrucluTcSpring ORMsupportiBats supportJDO supportSpring WebWebApp1icabOf>Conl«xlMullan resotvor曲曲uil相csSpring DAOTranuction infrastructureJOBC supporlDAO supportSpring ContextAf>phcafifln contextUI supportVnlid

51、atnnJNDL EJB sup port antJremoddirrgMailSpring WebMVCWeb MVCFraiYiwOfkWeb AewsjSPVeiodlyPDFExportSpring CoreS印pouting ulhQesEd 百 n con ner图2-3 Spring框架结构图Figure 2-3Structure Diagrams of Spring控制反转是一个在面向对象编程中降低程序耦合度的重要法则。它同时也是Spring框架的核心。控制反转一般分为依赖注入(Dependency Injection)和依赖查 找(Dependency Lookup)两种类型

52、。在面向对象编程中应用 IoC,那么一个对象 所依赖的其它对象不再由自己创建,而是会通过被动的方式传递进来。Spring的IoC容器工作机制如下:在项目的配置文件中配置类与类之间的引用 关系和注入方式;Spring框架根据配置文件,将对象间的引用,通过组件提供的 setter方法或者构造函数完成注入。使用Spring框架的依赖注入机制,大大的降低了组件间的耦合度,实现了系 统组件的即插即用。并且减少组件间依赖关系,也将极大地改善代码的可重用性。2.3.4 jQuery 框架与 jqGrid 插件jQuery是一个被广泛应用的JavaScript框架,它具有兼容多浏览器,容易学习 和方便使用等特

53、点。jQuery框架4提供很多已经实现好的函数,比如AJAX、HTML 操作、事件绑定、动画效果等,可以让开发者更容易的实现 Web页面的前端交互。并且jQuery提供函数库拓展功能,开发者可以根据自己的需要定义新的函数或者 插件。此外jQuery框架提供了十分完整的文档说明,各种函数的使用方法说得十 分详细,即使是不是很了解JavaScript的开发者也可以很快的学习使用。 最重要的 是基于jQuery框架开发前端项目时,可以将 JavaScript代码和HTML代码分离。 开发者不必在HTML标签里面插入JavaScript代码来调用命令了,只需要通过使 用HTML的标签id或者class

54、,就可以又t相应的HTML标签进行操作。jqGrid是一个支持Ajax的JavaScript控件,它基于jQuery框架开发,提供了 在网页展示和控制网格数据表的解决方案。它可以通过Ajax的回调从服务器端动态加载数据在前端页面生成数据表格,其中服务器端语言支持PHP、ASP和Java等主流服务器端开发语言。并且jqGrid提供中文版本和完善的开发文档,所以满 足快速构建前端表格的需求。2.3.5 数据缓存与Memcached在大型网站架构中,数据库的读写往往是影响网站响应速度和性能的重要问 题。当用户访问量非常大的时候,如果每次访问页面都要进行数据库查询,那么 网站的性能将会大大降低。但是如

55、果第一次访问页面的时候进行数据库查询,其 他用户发送相同的请求时,直接输出第一次请求的结果,这样就能大大的提高网 站的性能。这样无论系统的访问量有多大,数据库的压力都是不变的。数据缓存,就是一种以空间换取时间的技术,7我们将一些常用请求的处理结 果保存在快速存取设备中,当用户发送数据请求时,可以直接从缓存中取出数据 结果返回给用户,这样大大提高了数据读取效率。在Web系统中,被缓存的数据往往具有如下特点:数据经常被访问、数据改 动不频繁、时效性不强能容忍缓存失效前带来的数据不准确问题。但是,系统也 不能过分依赖数据缓存,一方面,对于并不被经常访问的数据,没有必要进行缓 存,不经常访问的数据进行

56、缓存并不能为提高系统性能带来多大改观反而会占用 大量内存空间,降低缓存性能。另一方面,在大型系统中,过分依赖缓存,如果 发生缓存故障,大量的用户请求将无法获得缓存信息,然后就会进行大量的数据 库访问,往往会造成数据库崩溃甚至更严重的问题。所以,使用数据缓存一方面 要明确哪些数据需要进行缓存,另一方面要保证如果数据缓存发生故障,不会对 系统造成灾难。Memcached是一个免费开源、高性能的通用分布式内存对象缓存系统,它往 往被应用于提高 Web应用程序的相应速度,减轻数据库负载压力。如今的许多大 型Web应用系统都在使用Memcached来保证他们即使每天面对海量的页面请求, 网站依然能保持高

57、效稳定的运行。Memcached是一个简单而强大的数据缓存工具。它将数据库请求、API调用或者页面渲染的结果以键值对区块的形式存储在内存中,以方便系统的随意调用。 它具有设计简单、易于开发、快速部署等特点,并且他提供大多流行编程语言的 API 接口。Memcached由服务器端和客户端这两个核心组件组成,在一个 Memcached的 查询中,Client先通过计算key的hash值来确定键值对所处在的 Server位置。当 Server确定后,客户端就会发送一个查询请求给对应的 Server,让它来查找确切的 数据。因为这之间没有交互以及多播协议,所以 Memcached交互带给网络的影响 是最小化的。2.3.6 ElasticSearchElasticSearch是由Shay Banon发起的一个开源搜索服务器项目,2010年2月发布。迄今,该项目已发展成为搜索和数据分析解决方案领

温馨提示

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

评论

0/150

提交评论