影像及电子档案管理系统内容管理子系统设计与实现.docx
影像及电子档案管理系统内容管理子系统设计与实西安电子科技大学学士学位论文影像及电子档案管理系统内容管理子系统设计与实现DesignandImplementationoftheContentManagementSubsystemoftheVideoandDocumentManagementSystem学院:软件学院专业:软件工程班级:一三06一三姓名:崔日新导师:孙述龙随着档案资料价值的日渐提升,各行各业对档案管理也提出了更高的要求。对档案要“管好”,更要“用好”,但首先要管理好。本文针对企业中的信息管理需求探讨了面向企业应用的影像及电子档案管理系统内容管理子系统的设计与实现。由于企业内信息文档繁多、业务需求多变,与涉及到公司工作效率与文件价值与保密性等因素。致使文档管理平台建设存在许多问题。本文从软件体系结构模式的角度入手,首先构建了一个基于MVC模式的应用软件开发框架,然后在此基础上设计与实现了影像及电子档案管理系统内容管理子系统。在介绍SSH结构模型、Ajax等理论的基础上,对比已有文档管理平台的不足之处,着重研究如何使用这些框架与技术开发跨平台、框架灵活、稳固有用的影像及电子档案管理系统内容管理子系统的问题,并给出了基于Struts+Hibernate+Spring+ExtJ技术的系统整体架构设计与内容管理子系统的设计与实现。论文最后讨论了目前的影像及电子档案管理内容管理子系统有待完善与进一步研究的问题。关键词:影像及电子档案管理系统内容管理子系统MVCSSHAjaxABSTRACTWiththeincreasingvalueoffiledata,allwalksoflifehaveahigherdemandforthefilemanagement.Astothedocument,itisbettertobeusedwellthanbemanagedwell,whilethefirstistobemanagedwell.ThispaperwilltalkaboutthedesignandimplementationoftheContentManagementSubsystemoftheVideoandDocumentManagementSystemwhichworksasanenterpriseapplication.Awareofthechangingbusinessrequirementsinthesystem,itisverydifficulttobuildtheplatform.Inthispaper,itfirstlybeginswiththesoftwarearchitecturepatterns,thenconstructsanapplicationsoftwaredevelopmentframeworkwhichisbuiltupontheMVCpattern,nextdescribesthedesignandimplementationoftheContentManagementSubsystemoftheVideoandDocumentManagementSystem.OnthebasisofintroducingSSHarchitecture,thepapercontraststothedisadvantagesintheexistingdocumentmanagementsystemsandfocusesonhowtousethesetechnologiesanddevelopmentframeworkstobuildacross-platfbrm,flexibleframeworkandstabilitypracticalvideoanddocumentmanagementsystem.Italsogivestheimplementationofthesystem,soverallframeworkfordesigningandperformancelayerbasedonStruts,Hibernate,SpringandExtJs,inthepaper.Finally,thepaperpointstotheproblemswhenrefertomakingthesystemmoreperfectandfurtherworktobedoneinthecurrentContentManagementSubsystemoftheVideoandDocumentManagementSystem.Finally,thepaperdiscussesthepointstobeperfectedandtheproblemstobefurtherstudiedinthecurrentinthecurrentContentManagementSubsystemoftheVideoandDocumentManagementSystem.Keyword:VideoandDocumentManagementSystemMVCSSHAjax第一章绪论31.1 项口背鼠二二二二二二二二二二错误!秦定义军签。1.2 项目研究内容31.3 论文结构4第二章有关理论与技术错误!未定义书签。2.1 有关理论简介62.2 Struts2的核心技术62.3 Hibemate的核心'技术82.4 Spring的核心'技术92.5 AJAX技术102.6 SSH集成框架11第三章需求分析123.1 系统需求分析123.1.1 系统角色123.1.2 需求分析123.2 本章小结15第四章系统总体设计164.1 系统架构总体设计164.1.1 传统开发框架到SSH框架164.1.2 SSH框架构建设计174.1.3 SSH架构在系统中的应用194.1.4 SSH架构的优势与不足204.2 系统数据库设计214.3 系统持久层总体设计234.3.1 系统持久层设计与实现234.3.2 DAO层设计与实现244.4 系统业务逻辑层总体设计274.5 系统表现层总体设计294.5.1 使用EXt的页面布局294.5.2 使用Ext支持的客户端表单验证294.5.3 Ext封装的Ajax技术的使用304.7本章小节32第五章系统具体实现335.1 类别管理模块具体实现335.1.1 持久层具体实现335.1.2 表现层具体实现335.2 文档管理模块具体实现345.2.1 持久层与操纵层具体实现345.2.2 表现层具体实现355.3 日志管理模块具体实现365.4 权限管理模块具体实现375.4.1 操纵层具体实现375.4.2 表现层具体实现385.5 系统附加功能具体实现385.5.1 信息统计功能的实现具体实现385.5.2 系统定时清理功能具体实现395.6 本章小节39第六章运行及测试406.1 系统部署情况406.2 系统日志功能运行情况416.3 系统核心功能测试与运行情况416.3.1 管理员管理功能测试与运行情况415.3.2 文档管理功能测试与运行情况435.3.3 权限管理功能测试与运行情况46第七章结论与展望487.1 本文总结487.2 影像及电子档案管理系统建设的未来思考487.2.1 系统存在的不足487.2.2 系统的展望49致谢50参考文献51第一章绪论1.1 项目背景电子档案以其现代化手段,在档案信息存储、输出、处理等方面,具有纸质档案无法比拟的优越性.网络化运用引起了电子档案的保密性、安全性、真实性、可靠性问题.因此,务必加强电子文件的管理。公司中存在着各类信息档案,而如今人们已经习惯用电脑办公,结果自然会产生大量的电子文件,但我们假如将更多的时间花费在寻找这些文件上,既费时又费力。同时,公司文档又关系到公司工作效率与利益问题,如何有效管理电子档案成为我们务必研究与解决的问题。如今已有的电子档案管理系统存在的要紧问题有:问题1:原有系统使用单一的StrUtS或者其他的开发框架,这种方式缺少有效的模块集成手段,基于不一致平台的模块很难集成,系统的可扩展性与伸缩性比较差。一旦系统需求分析发生变化(如今往往已经到了开发过程的中后期)或者者系统需要扩展业务,原有系统的框架不能很好地解决这一问题。问题2:用户反映该系统的用户界面不够简洁,使用流程比较复杂。问题3:文档分类方法不恰当,危及文件信息资源的有效收集。问题4:系统功能不完善,直接影响文件信息资源的管理水。显然,根本的解决办法是完善系统开发框架、科学的文档分类管理与友善的用户操作界面。待开发的系统借鉴了原有系统的功能需求,但是在使用的开发框架与表现层方面对原有系统进行改进,使得系统更加完善。1.2 项目研究内容本文要紧研究在影像及电子档案管理平台中隶属于影像及电子档案管理系统应用集成框架的影像及电子档案管理系统内容管理子系统的设计与实现,在整个过程中要紧完成下列工作:1 .影像及电子档案管理系统内容管理子系统的整体设计。在研究国内外现有成果地基础上完成影像及电子档案管理系统内容管理子系统的整体设计与逻辑上的模块划分。2 .研究一套灵活的系统整体架构方案,以方便处理系统模块间的操纵与数据的集成,解决原有系统可保护性与扩展性差的问题。将研究结果应用于实际系统开发,为提高影像及电子档案管理内容管理子系统的快速开发、可保护与扩展能力提供有效的支持。设计并实现影像及电子档案管理系统内容管理子系统整体后台框架,为整个系统提供架构支持。3 .在系统表现层方面,研究使用与后台进行异步交互的框架与能带来良好用户体验的技术,以提高页面良好的展示效果。4 .根据需求分析,设计实现影像及电子档案管理内容管理子系统核心功能,即文档管理功能,为其他模块提供技术借鉴与支持。5 .根据需求分析实现影像及电子档案管理内容管理子系统各功能。1.3论文结构论文分为六章,各章要紧内容如下:第一章:绪论。提出项目的背景,与项目的研究内容与组织结构。第二章:有关技术概述。探讨JZStrutsHibemateSpring>AjaX等有关理论。第三章:影像及电子档案管理系统内容管理子系统需求分析。简要说明了影像及电子档案管理系统内容管理子系统的需求分析与不一致系统角色的具体功能需求。第四章:首先分析了影像及电子档案管理系统内容管理子系统架构的总体设计。重点介绍了基于SSH架构的影像及电子档案管理系统内容管理子系统总体架构的总体设计与数据库设计。然后分别对系统持久层与业务逻辑层设计做了全面介绍。第五章:介绍了影像及电子档案管理系统内容管理子系统核心模块非共性的具体实现,重点讨论了使用了EXt框架的页面组织与实现过程。第六章:系统测试与运行。首先介绍了系统软硬件部署情况,然后以贯穿系统配置与部署的日志管理系统的运行情况说明系统是可实现的而且部署是成功的。最后以系统核心功能为例,使用测试用例对其进行了测试,分析了测试结果。最后总结了全文,指出了系统的需要改进的地方与进一步的研究方向。第二章有关理论与技术2.1有关理论简介 SSHSSH在J2EE项目中表示了3种框架,既Spring÷Struts÷Hibemate0 Struts2StrUtS2是在WebWork基础上进展起来的,是建立在称之XWork的Command模式框架之上的强大的基于Web的MVC框架(参见本章2.2节)。 HibernateHibemate是一个开放源代码的对象关系映射框架,对JDBC进行了轻量级的对象封装,使得我们能够使用对象编程思维来操纵数据库。Hibemate能够应用在任何使用JDBC的场合,最具革命意义的是,Hibernate能够在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任(参见本章2.3节)。 SpringSPring是一个开源框架,它是为熟悉决企业应用开发的复杂性而创建的。SPring使用基本的JaVaBean来完成往常只可能由EJB完成的情况。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性与松耦合的角度而言,任何JaVa应用都能够从Spring中受益(参见本章2.4节)。 AjaxAjaX全称之“AsynchronousJavaScriptandXML”(异步JaVaSCriPt与XML),是指一种创建交互式网页应用的网页开发技术。AjaX并不是一种新产生出来的技术,它实际上是由目前几种相对成熟的技术组合而成的。标准的AjaX包含:基于XHTML与CSS标准的表示。2.2 Struts2的核心技术StrUtS2是WebWOrk的升级,而不是一个全新的框架,因此稳固性、性能等各方面都有很好的保证:而且汲取了Struts1与WebWOrk两者的优势。StnltS2是一个优雅的,可扩展的JAVAEEWeb框架。框架设计的目标贯穿整个开发周期,从开发到公布,包含保护的整个过程。StrUtS2框架的核心是一个灵活的操纵层,它基于下列标准技术,如:JaVaServletJavaBean资源绑定、XML与各类JakartaCommons包。Struts鼓励使用基于Model2方法的应用框架,它是一种经典的模型一试图一操纵器的MVC模型。MVC是XeroxPARC在20世纪80年代为编程语言Smalltalk-80发明的一种软件架构模式。它强制性的使应用程序的输入、处理与输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、操纵器。它们各自处理自己的任务。MVC视图如图:方法调用A事件图2.1MVC视图视图(VieW)代表用户交互界面。随着应用的复杂性与规模性,界面的处理也变得具有挑战性。一个应用可能有很多不一致的视图,MVC设计模式关于视图的处理仅限于视图上数据的采集与处理,与用户的请求,而不包含在视图上的业务流程的处理。业务流程的处理交予模型(MOdeI)处理。比如一个文档信息的视图只同意来自模型的数据并显示给用户,与将用户界面的输入数据与请求传递给操纵与模型。模型(MOdel)表示企业数据与业务规则。在MVC的三个部件中,模型拥有最多的处理任务。比如它可能用如EJBs与ColdFusionComponents这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就能够被多个视图重用,因此减少了代码的重复性。操纵(COntrolIer)能够懂得为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。划分操纵层的作用也很明显,它清晰地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,能够完成什么样的用户请求。操纵层并不做任何的数据处理。比如,用户点击一个连接,操纵层同意请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。模型、视图与操纵器的分离,使得一个模型能够具有多个显示视图。假如用户通过某个视图的操纵器改变了模型的数据,所有其它依靠于这些数据的视图都应反映到这些变化。因此,不管何时发生了何种数据变化,操纵器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。模型、视图、操纵器三者之间的关系与各自的要紧功能2.3 Hibernate的核心技术Hibernate是一种JaVa语言下的对象关系映射解决方案。它是一种自由、开源的软件。它用来把对象模型表示的对象映射到基于SQL的关系模型结构中去,为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。Hibernate不仅管理Java类到数据库表的映射(包含从Java数据类型到SQL数据类型的映射),还提供数据查询与获取数据的方法,能够大幅度减少开发时人工使用SQL与JDBC处理数据的时间。Hibernate对JDBC进行了非常轻量级的对象封装,使得Java程序员能够随心所欲的使用对象编程思维来操纵数据库。Hibernate能够应用在任何使用JDBC的场合,它既能够在Java的客户端程序使用,也能够在ServletZJSP的Web应用中使用。最具革命意义的是,Hibemate能够在应用EJB(EnterPriSeJaVaBeanS是JaVa应用于企业计算的框架)的J2EE架构中取代CMP,完成数据持久化的重任。2.4 Spring的核心技术Spring是一个轻量级的操纵反转(IOC)与面向切面(AOP)的容器框架。是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而,SPring并不想取代那些己有的框架,而是与它们无缝地整合。操纵翻转IoC(InversionOfCOmrol)/依靠注入DI(DependenceInjeetion)机制。I。C是指由容器中操纵组件之间的关系(这里,容器是指为组件提供特定服务与技术支持的一个标准化的运行时的环境)而非传统实现中由程序代码直接操控,这种将操纵权由程序代码到外部容器的转移,称之“翻转DI是对IoC更形象的解释,即由容器在运行期间动态地将依靠关系(如构造参数、构造对象或者接口)注入到组件之中。SPring使用设值注入(使用Setter方法实现依靠)与构造子注入(在构造方法中实现依靠)的机制,通过配置文件管理组建的协作对象,创建能够构造组件的IoC容器。这样,不需要编写工厂模式、单例模式或者者其他构造的方法,就能够通过容器直接获取所需的业务组件。SPring框架的结构如图2.2所示。SpringAOPSpringORMSpringWebSpringSpringMVCSpringDAOSpringCoreContainer图2.2Spring框架模块构成SPring框架由七个定义明确的模块构成,且每个模块或者组件都能够单独存在,或者者与其他一个或者多个模块联合实现。SPringCoreComainer是一个用来管理业务组件的IoC容器,是SPring应用的核心;SPringDAe)与SPringORM不仅提供数据访问的抽象模块,还集成了对Hibernate>JDO与iBatis等流行的对象关系映射框架的支持模块,同时提供了缓冲连接池、事务处理等重要的服务功能,保证了系统的性能与数据的完整性;SPringWeb模块提供了Web应用的一些抽象封装,能够将Struts、Webwork等Web框架与Spring整合成为适用于自己的解决方案。Spring框架能够成为企业级应用程序一站式的解决方案,同时它也是模块化的框架,同意开发人员自由地选择适合自己应用的模块进行开发。SPring框架式是一个松耦合的框架,框架的部分耦合度被设计为最小,在各个层次上具体选用哪个框架取决于开发者的需要。2.5 AJAX技术我们明白,传统的Web应用是同步交互的方式。这种同步交互方式的处理过用户向服务器提交了一个处理请求时,服务器端同意到该请求后,与数据库服务器进行数据信息的交换,然后对请求处理进行相应,马上结果传送回发出请求的浏览器客户端,返回一个HTML页面在浏览器端进行显示。显然,这样的一种处理方式会给用户一种不连贯的体验,由于当服务器在处理请求的时候,用户多数时间只能处于等待状态,页面中显示的内容也只能时一片空白。与传统的Web应用不一致,AjaX使用的是一种异步交互的处理方式。这种异步交互的处理过程如图2.4所示。图2.4使用Ajax的异步交互模式Ajax相当于在浏览器客户端与服务器之间架设了一个桥梁,在它的帮助下,能够消除网络交互过程中的处理一等待一处理一等待的缺陷。在处理过程中Web服务器响应是标准的且易于解析的XML格式的数据传递到Ajax,然后再转换成HTML页面的格式,辅助CSS进行显示。Ajax是传统Web应用程序的一个转变。Ajax能够所为客户端与服务器的中间层,来处理客户端的请求,并根据需要向服务器端发送请求,用什么就取什么、用多少就取多少,就不可能有数据的冗余与浪费,减少了数据下载总量,而且更新页面时不用重载全部内容,只更新需要更新的那部分即可,相关于纯后台处理并重载的方式缩短了用户等待时间。2.6 SSH集成框架SSH(Spring+Struts+Hibernate)是典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)与数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。表现层是传统的JSP网技术,其广泛的应用与稳固的表现,为其作为表现层技术打下了坚实的基础。中间层使用的是流行的Spring÷Hibemate,为了将操纵层与业务逻辑层分离,又细分为下列几种。Web层,就是MVC模式里面的操纵器,负责操纵业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现。Service层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。DAO层,负责与持久化对象交互。P0,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,方便地实现以面向对象方式操作数据库,使用Hibernate作为ORM框架。SPring的作用贯穿了整个中间层,将Web层、SerViCe层、DAc)层及PO无缝整合,其数据服务层用来存放数据。第三章需求分析3.1 系统需求分析3.1.1 系统角色根据影像及电子档案管理内容管理子系统的实际需求,系统整体的用户包含普通管理员、高级管理员与普通用户、高级用户。而后台影像及电子档案管理系统内容管理子系统的用户角色为普通管理员与高级管理员。下面是对上述不一致角色的需求分析。3.1.2 需求分析本小节分别说明普通管理员与高级管理员的需求分析。图3.1表示普通管理员系统功能用例图。图3.1普通管理员系统功能用例图如图普通管理员功能分为登陆、类别管理、文档管理、日志管理、评论管理与用户管理。此角色的系统功能结构图为:普通管理员管理图3.2普通管理员角色系统功能结构图具体功能分析如下:(1)普通管理员需求分析。 管理员登录:不一致的用户功能与权限不一致,因此不一致的用户务必先进行登录验证,只有验证通过才能够进行有关的操作。 文档类别管理(高级管理员授权情况下):普通管理员登录后能够对文档类别进行操作,比如:删除类别、在某一当前类别下添加子类别与修改类别信息。 文档管理(高级管理员授权情况下):普通管理员登录后能够对文档进行操作,比如:录入文档、修改文档基本信息、验证文档、修改删除与添加文件到某一当前文档、删除文档、高级选择查看文档等。 用户管理(高级管理员授权情况下):普通管理员登录后能够对用户进行管理,比如:查看用户、删除用户、查看用户上传文档等。 用户评论管理(高级管理员授权情况下):普通管理员登录后能够对用户的评论进行管理,比如:查看用户评论、删除多条用户评论与按关键字批量删除评论。 日志管理(高级管理员授权情况下):普通管理员登录后能够对管理员操作日志进行管理,比如:查看日志信息、备份日志与清理日志。(2)高级管理员需求分析。图3.3表示高级管理员系统功能用例图图3.3高级管理员系统功能用例图(省略了普通管理员的功能)高级管理员能够执行系统所有操作,除了普通管理员的所有需求外,还包含管理员管理与权限管理,此角色的系统功能结构图为:高级管理员管理管理员管理权限管理图3.4高级管理员系统功能结构图管理员管理:高级管理员登陆后能够对系统管理员信息进行管理,比如:添加管理员、删除管理员与修改管理员信息。权限管理:高级管理员登陆后能够对系统角色权限进行管理。3.2本章小结本章要紧介绍了影像及电子档案管理系统内容管理子系统的需求分析,按照不一致的角色将功能需求用用例图的方式列出。然后为了更深入的熟悉系统需求,使用功能结构图对系统按角色进行了功能分析。第四章系统总体设计4.1 系统架构总体设计根据需求分析,这一节全面讨论了影像及电子档案管理系统内容管理子系统的总体架构设计方案。4.1.1 传统开发框架到SSH框架经典的网站系统是基于Struts÷Hibemate的框架进行设计与开发的。这种开发框架的好处是实现简单,业务逻辑清晰,开发人员使用起来很容易。因此在实际开发时能够把后台业务逻辑代码放到设计好的JavaBean中,按照上述功能结构图的模块划分方式,每个模块都是一个单独的JaVaBean类,操纵层代码直接使用这些类完成实际功能。尽管上述的开发框架能够很好的解决电子档案管理中的应用开发面临的问题,但是实际应用说明这存在着一些弱点。首先是复用的层次较低,开发框架要紧着眼于对象类的复用,而这些复用是代码级的复用,代码级的复用方式带来的坏处是涉及实现细节,不支持可插拔的软件构件思想;其次是粒度较小,开发框架中要紧实现的是一些通用功能或者者常规操作,没有比较大粒度的构件复用,尽管存在一定程度的独立的业务代码类,但是依然离不开实现细节;最后就是使用人员的定位问题,使用开发框架的基本上是熟悉熟悉此类框架的软件开发专业技术人员,而关于不熟悉这种开发框架的业务人员而言,无法满足他们随着需求变更修改系统或者者自主开发小应用的需要。为此,本文提出了比开发框架层次更高的SSH框架构件平台来实现具体的应用。SSH框架构件平台要紧是为了习惯复杂多变的公司文档信息管理的业务需求而提出的业务支撑平台,该平台的目标是支持开发人员通过统一的业务平台快速构建影像及电子档案管理系统的业务流程,实现公司内部影像及电子档案管理的业务整合与数据整合,最终形成一个统一的立体式的影像及电子档案管理系统。这一节以影像及电子档案管理系统内容管理子系统为例,进行SSH框架应用的研究。SSH框架规划的出发点完全不一致于现有的建模与组件的方案设计。传统的网站系统设计是:当软件的设计与开发人员在拿到业务需求后,会立即想到是不是需要使用StnltS的MVC结构,是使用EJB还是使用Hibemate,是使用什么样的服务器与数据库等。然后系统架构师与每个业务人员进行沟通同时划分每个业务模块,业务人员再向每个模块填写相应的代码。这样,使得业务从属于技术,业务功能受到具体技术的限制,业务与技术是紧耦合的。这样的设计使得很多网站系统受到技术的限制,一旦系统需要改进技术或者者技术被淘汰,他们的业务也会跟着发生变化或者者淘汰。SSH框架规划旨在减轻开发人员重新建立解决复杂问题方案的负担与精力;它能够被扩展以进行内部的定制化,提高开发效率并容易实现系统的可扩展性与可保护性。下图为系统基于SSH框架的层次关系图:DAO、(HibernateTenIPIate) )DAO持久层业务层业务处理模块Service从服务器调用 服务得到数 据,并组装成 数据对象将客户端的数 据对象,提交 到数据端逻辑层控制层处理控制层数据对象Action表现层EXl组件展现页面JSP/Ext图4.1应用框架的层次关系图层次结构图给出了应用框架的层次关系,应用框架由上向下可分为持久层、逻辑层、业务层、操纵层与表现层。其中上层构件为下层提供了独立完整的功能,下层构件无需熟悉上层构件内部的实现细节,只需要调用其提供的明确定义的接口与方法来实现自己的功能。应用框架的分层机制负责将用户的业务需求分为相对独立的层次化模块,支持开发人员方便快速地开发相对独立的业务单元。基于MVC模式,系统分为表现层、中间层(业务逻辑层)与数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。表现层使用基于JSP显示,EXtJS组件为主体的开发模式。中间层使用的是流行的Spring+Hibernate,为了将操纵层与业务逻辑层分离,又细分为下列几种。Web层,就是MVC模式里面的"C”(controller),系统中对应ACtion层。负责操纵业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现。Service层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAo组件的正面模式包装,完成系统所要求的业务逻辑。DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作,使用数据库中间件Hibernate完成对底层数据库应用的封装,通过一致的规范接口,将底层数据库与业务逻辑分离开来,为应用系统的业务代码开发提供了数据层支持。P0,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,该系统使用Hibernate作为ORM框架,并使用注解方式实现数据映射配置。SPring的作用贯穿了整个中间层,将Web层、ServiceMDAo层及PO无缝整合,依靠Spring依靠注入特性Web层中注入Service>Service层中注入DA0、DAO层中注入HibernateTemplate,其数据服务层用来存放数据。为了提高系统的可扩展性与可保护性,在DAO层与SerViCe层分别抽取出接口层与接口实现层。图4.2是影像及电子文档管理系统的整体架构图。图4.2影像及电子文档管理内容管理子系统的整体架构图下面是对图4.2中各层的角色及功能说明。(I)VieW层:影像及电子文档管理内容管理子系统的视图展示,用户页面使用EXt框架进行组织,数据从后台转发过来使用JSP的方式,然后在客户端转换成HTML页面的格式,借助JaVaSCriPl与CSS进行显示。(2)COmrOlIer层:影像及电子文档管理内容管理子系统的操纵层,使用StnltS的操纵层来进行业务流程操纵。操纵器是应用系统处理具体流程与导向的核心部分。它把模型对象给出的信息转换成视图能够懂得的形式,同时处理系统流程的走向。在这里使用struts.xml配置文件来定义业务流程,使用Action类调用相应的WebService来实现这些具体功能。(3)MOdeI层:影像及电子文档管理内容管理子系统的模型层,实现具体的业务逻辑。模型包含应用程序的核心功能,封装了应用程序的状态,它对视图或者操纵器一无所知。数据库中间件方面,系统定义了Dao层,使用集成封装的HibemaIeTemPlate实现数据操作。系统使用AnnotatiOn(注解)方式配置实体类与数据库的映射关系,包含主键生成策略、表与表的级联关系配置等。传统的网站系统使用单一的StnItS+Hibernate框架进行设计与开发,在这种方式下,客户端代码与业务逻辑代码混杂在一起,而且模块化划分不够灵活,各个业务模块之间的耦合度较高。传统的应用没有完全遵循软件可重用性的原则,可重用性仅仅表达在本地的代码可重用性,而关于更广范围的数据与代码的可重用性,并没有相应的支持。与传统的网站系统应用相比,基于SSH框架的影像及电子档案管理系统内容管理子系统架构有如下优点:1 .发效率高一个良好的框架能够让开发人员减轻重新建立解决复杂问题方案的负担与精力;它能够被扩展以进行内部的定制化;同时有强大的用户社区来支持它。框架通常能很好的解决一个问题。2 .后期保护效率高软件工程不一致于传统的工业,比如电器、建筑及汽车等行业。这些行业的产品一旦开发出来,交付用户使用后将很少需要后续的保护。软件产品的后期运行保护是个巨大的工程。传统的ASP与PHP等脚本站点技术,将整个站点的业务逻辑与表现逻辑都混杂在ASP或者PHP页面里,从而导致页面的可读性相当差,可保护性非常低。但使用严格分层J2EE架构,则可完全避免这个问题。对表现层的修改即使发生错误,也绝对不可能将错误扩展到业务逻辑层,更不可能影响持久层。因此,使用J2EE分层架构,即使前期的开发效率略微低一点,但也是值得的。3 .系统结构性强Struts提供标准的MVC架构模式,Hibernate实现底层数据映射与数据业务操作,而SPring则贯穿于整个项目各个层次中,作为一个轻量级容器管理各个层次。系统结构脉络清晰。4 .系统需求扩展性强几乎所有的软件需求都是在变化的。客户对软件需求,是随着软件开发过程的深入,不断明晰起来的。因此,常常遇到软件开发到一定程度时,由于客户对软件需求发生了变化,使得软件的实现不得不随之改变。当软件实现需要改变时,是否能够尽可能多地保留软件的部分,尽可能少地改变软件的实现,从而满足客户需求的变更?答案是一一使用优秀的解耦架构。这种架构就是J2EE的分层架构,在优秀的分层架构里,操纵层依靠于业务逻辑层,但绝不与任何具体的业务逻辑组件耦合,只与接口耦合;同样,业务逻辑层依靠于DAO层,也不可能与任何具体的DAc)组件耦合,而是面向接口编程。使用这种方式的软件实现,即使软件的部分发生改变,其他部分也尽可能不要改变。另一方面,在传统的程序结构中,只要有一点小的需求发生改变,将意味着放弃整个页面,或者者改写。使用Hibernate作为持久层技术的最大的好处在于:能够完全以面向对象的方式进行系统分析、系统设计。5 .系统技术扩展性强Struts>Hibernate.SPring都是开源框架,这同样是优势之一。如StnItS支持多种插件,在本系统中使用到了JfreeChart实现了系统统计的功能。更高的系统灵活性系统的页面与服务开发相互分离,这就使得在需求确定的情况下,系统的表现层与服务层的开发能够同时进行,大大减少了系统开发周期。另外,页面与业务的分离降低了表现层与服务层的耦合度,一旦页面发生改变,服务层根本不需要改变,这样也使得系统具有很好的灵活性。使用上述架构的影像及电子档案管理系统内容管理子系统也存在下列不足:(1)由于系统开发框架集成了许多封装之后的组件,系统内存开销比较大。(2)表现层大部分使用JS技术,由于编码与调试效率不高等因素,开发效率有一定影响。(3)灵活的开发方式必定是以开发的复杂性为代价的,影像及电子档案管理系统内容管理子系统开发起来相对复杂。4.2系统数据库设计系统ER图如下图:CotimntIdmlnmss«rd joWamPr iviIeg<pi> In “ E陋Vzuriable CkaraCterS (100)MariaMe czurac ters (100)Variablt GurBCe“ (100)Iate erIaiererVariable mlHbrte (IoO)id Gi> I, mx(曲COBteatVariable characters(1000)dateDftte TimsiateIateex<pi>RfilatiVdate Flar nploarld cate FMryIa 11 topic aoeg: