基于SSH+Ajax的校园文档资源共享平台设计
2015-01-25周改云张国平
周改云,张国平,马 丽
(平顶山学院 软件学院,河南 平顶山 467000)
随着网络信息交流的发展,在人们的日常生活、工作中文档占据着重要位置。人们比较熟悉的文档共享平台有百度文库、豆丁以及新浪的爱问资料共享等。百度文库搜索功能强大,豆丁网兼容性较好,而新浪的爱问资料共享归类性良好。也有很多好的文档资源分享网站比如谷歌、DocStoc等。谷歌文档可在线新建、编辑、存储和分享文档,相当于简化的Office;而DocStoc除了社会性文档分享功能外,支持多种形式文档的在线阅读。但许多大学校园的文档资源缺乏统一管理,存在交互性、共享性差等问题,若能利用WEB技术,建立一个交互、开放、通用的文档共享平台,加快校园文档资源的交流与共享具有重要的现实意义。
1 相关技术简介
1.1 SSH框架技术
SSH为Sruts+Sring+Hiernate的一个集成框架,分为表示层、业务逻辑层、数据持久层和域模块层四层,是目前使用较多的一种Web应用程序开源框架。
1.1.1 Struts框架
Struts是一种基于MVC经典设计模式、比较成熟的WEB开发应用框架[1]。Struts把 Servlet、JSP、JavaBean 等整合到一个统一的框架中,将Model、View和Controller分别映射到WEB应用中的组件,其体系结构体现了MVC设计模式的概念[2]。
1.1.2 Spring框架
Spring框架以IoC(控制反转)和AOP(面向方面编程)为基础,通过基本的JavaBean完成以前只能由EJB完成的工作[3]。Spring提供服务组件处理业务逻辑,通过配置Spring的applicationContext,xml将组件联系起来[4]。Spring 框架松耦合,开发者可根据需要确定各层次上具体选用的框架[5]。
1.1.3 Hibernate框架
Hibernate是一个开放源代码的对象关系映射框架,通过映射文件,完成对象关系映射;轻量级对象封装JDBC,业务层采用面向对象方式编程,开发人员可随心所欲操纵数据库无需考虑数据保存形式[6],实现业务数据的持久化。
1.2 Ajax技术
Ajax 是 DOM、XHTML、CSS、XML、XSTL、Java Script 和XMLHttpRequest等多种技术的整合[7],其异步访问服务器,无刷新便可更新网页[8],较好解决了浏览器反复加载页面等待数据传输问题,客户端延迟降低,提高了Web应用程序执行效率[9]。
1.3 文档转码技术
文档共享式资源平台通过FlashPaper2软件进行转码处理,取文档文件的每一页作为一帧组成Flash文件 (或PDF文件),让其以流媒体Flash动画形式按原来文件的排版格式呈现在前台。
2 文档共享平台设计
文档共享式资源平台分管理员、会员和游客3类角色。管理员登录后可管理数据库、管理会员、管理公告、管理文档、管理评论、管理积分、管理个人信息等;会员登录后,可在线浏览、上传、下载、搜索、收藏文档发以及查看积分与修改个人信息等;而游客登录后只能在线搜索、浏览文档和注册为会员。
2.1 平台架构设计
文档资源共享平台采用B/S三层模式,将系统按功能划分成会员管理、管理员管理、文档管理、评论管理、公告管理、数据库管理等功能简单的小模块,各模块间通过接口传递消息。底层的实现对上层透明,即本平台设计为显示层(View,也叫表示层)、业务处理层(Action)与数据访问层(DAO)三层。显示层发送request请求并封装请求参数发送至业务处理层,由对应的Action类处理,然后通过DAO层访问数据库,获取相应的数据信息,最后由List返回至Action层,根据显示要求,再由List发送到显示层显示。
2.2 模块接口和类设计
文档共享资源平台采用面向对象的设计思想,为减少各模块间的关联,做到“高内聚,低耦合”,该平台的设计重点位各模块对外接口类以及各接口间的关系。
2.2.1 用户模块接口和类设计
用户模块主要对外提供登录注销、注册用户、管理用户、修改密码和查找用户5个接口,其中查找用户分为查找全部、按用户名查找、按Id查找等接口,如图1所示。平台中管理员、会员和游客3类角色均和用户模块关联。
图1 用户模块接口Fig.1 User module interface
1)管理员
①通过调用用户管理接口对用户进行管理,包括增加用户,删除用户、修改用户操作;
②通过调用查找用户接口,针对个别用户进行搜索,然后进行管理操作。
2)会员、游客
①会员则通过调用修改密码接口修改自己的密码;
②通过登录注销接口来实现对系统的登录和退出;
③游客则通过调用注册接口实现注册请求。
通过以上对功能的分析,该模块的类图设计见图2。
图2 用户模块类Fig.2 User module class diagram
User类:用户实体类,用于封装用户名、密码等user的基本信息,以及获取这些属性的基本方法。
UserDao类:用户数据库访问对象,封装用户数据库增、删、改、查等基本访问操作。
Dao接口:数据访问接口,声明访问用户数据库基本访问操作以及分页方法。
DaoSupport类:Dao中声明方法的具体实现,对数据库访问的又一层封装。
UserServiceImple类:对外业务接口,通过其对User类进行isExist()、修改密码、注册用户、删除用户、搜索用户等对外访问业务操作。
由DaoSupport类继承Dao接口,并实现其中声明的方法,再由UserDao继承DaoSupport类,这样UserDao就有了Dao接口声明的方法,但不用实现其中的方法,具体的实现已经在DaoSupport中完成。在UserDao中引用一个User对象,就可以对数据库进行操作,然后在UserServiceImpl中加入UserDao的引用就可以实现对外提供各种操作接口。
2.2.2 文档模块接口
文档模块是文档共享资源平台的核心模块之一,主要提供文档分类、文档浏览、文档搜索、文档管理(包括文档的增、删、改、查)、审核文档、文档上传、文档下载和文档下载排行6个接口,其中文档搜索又可分为按用户名、时间、扩展名、标题等子接口,文档的审核包括文档的查阅和转码。其结构图见如图3。管理员、会员和游客三类角色均和文档模块关联。
图3 文档模块接口Fig.3 Document module interface
1)管理员
①调用文档管理接口管理文档;
②调用文档审核接口审核文档,若符合网站规定则允许文档转码,否则就删除文档;
③调用文档分类接口归类文档,可分别调用一、二级归类接口管理一、二级目录;
④调用浏览文档接口在线浏览文档。
2)会员
①调用浏览文档接口浏览文档;
②调用上传文档接口上传文档;
③调用下载文档接口下载文档;
④调用搜索文档接口搜索文档,并可按时间、标题、用户名、扩展名等不同条件搜索文档。
游客只能浏览和搜索文档。通过各角色功能调用关系分析,该模块类图设计见图4。
图4 文档模块类Fig.4 Document module class
Document类:文档实体类,用于封装文档标题、id、文档类型、发布用户、扩展名、上传时间、url、关键字等文档基本信息,以及基本信息访问方法。
DocumentDao类:文档数据库访问对象,封装文档数据库增、删、改、查等基本访问操作。
Dao接口:数据访问接口,声明访问文档数据库基本访问操作以及分页方法。
DaoSupport类:Dao中声明方法的具体实现,对数据库访问的又一层封装。
DocServiceImple类:对外业务接口,通过其对Document类提供上传、下载、搜索等对外访问业务操作。
UserDao类:用户数据库访问对象,封装用户数据库增、删、改、查等基本访问操作。
DocType类:文档类型实体类,用于封装文档名、文档编号、文档类别、上级类别等文档类型基本信息。
DocTypeDao类:文档类型数据库访问对象,封装其数据库增、删、改、查等基本访问操作。
由DaoSupport类继承Dao接口,并实现其中声明的方法,再由DocumentDao和DocTypeDao继承DaoSupport类,这样DocumentDao和DocTypeDao就有了Dao接口声明的方法,但不用实现其中的方法,具体的实现已经在DaoSupport中完成。然后在DocServiceImpl中加入DocumentDao和DocTypeDao的引用就可以实现对外提供文档的操作和文档归类的操作接口。
评论、公告、文档审核等模块的类和接口设计与用户模块类似,只是将对外业务接口类提供的操作换成某模块提供的对应的对外业务操作即可,在此不再描述。
2.3 文档共享平台数据库设计
数据库结构设计在平台中占据十分重要的地位,直接影响到应用平台的效率及实现效果。本节将介绍文档共享平台数据库设计。
2.3.1 数据分析
文档共享平台主要涉及到管理员、会员、游客3类用户,其操作的对象主要是文档、评论、系统公告、文档类别等,故该平台可抽象出会员、管理员、文档、评论、公告等实体。各实体之间关系如下。
1)一个管理员可以管理多个文档,一个文档也可以由多个管理员管理,其关系为多对多;
2)一个会员可创建多个文件夹,一个文件夹只能由一个会员创建,其关系为一对多;
3)管理员可发布多个系统公告,一个系统公告只能由一个管理员发布,其关系为一对多;
4)一个会员可评论多个文档,一个评论只能由一个会员发表,其关系为一对多;
5)一个会员可上传多个文档,一个文档只能由一个会员上传,其关系为一对多;
6)一篇文档只属于一种文档类型,而一种文档类型可以包括多篇文档,其关系为多对一。
据各个实体之间的关系,文档共享平台实体E-R图如图5所示。
图5 文档共享平台实体E-R图Fig.5 Document sharing platform entity E-R diagram
2.3.2 数据库设计
文档共享平台数据库包含文档信息表、用户信息表、管理员信息表、评论信息表、文档文件夹表、文档拓展属性表、文档类型表、文档类型表、下载文档表、系统公告表、用户积分表、用户文件夹表等共十二张表,分别用来存储文档、会员、管理员、会员评论文档、文档及文件夹和用户间的对应关系、文档拓展属性、文档类型、用户及其下载文档对应关系、公告信息、用户及其各类积分对应关系、上传收藏分类和积分分类、用户创建的文件夹等信息。部分表详细设计如下。
1)文档信息表
文档信息表存储文档,包括文档编号,文档标题,文档类别,文档下载所需积分、关键字、文档类型编号、用户状态、上传用户编号等。其详细设计见表1。
表1 文档信息表Tab.1 Document information table
2)文档拓展属性表存放属性编号、文档编号、属性名、属性值等信息。其详细设计见表2。
表2 文档拓展属性表Tab.2 Document property sheet
3)文档类型表存放文档类型信息,包括类型编号、类型名、是否为根目录、父节点的编号4个字段。其详细设计见表3。
表3 文档类型表Tab.3 Document type table
4)文档文件夹表存放文档、文件夹、和用户之间的对应关系,包括编号、文件夹编号、文档编号、用户编号4个字段。其详细设计见表4。
5)数据库字典表用于存放上传收藏分类和积分分类信息。包含编号、名称和标记3个字段。其详细设计见表5。
表4 文档文件夹表Tab.4 Documents folder table
表5 数据库字典表(data_dic)Tab.5 Database dictionary tables
3 结束语
文档资源共享平台系统采用SSH框架,不仅分离了视图、控制器与模型,还分离了业务逻辑层与持久层。因此不论表示层如何变动,模型层只需做较少改动,且数据库的变化也影响不到表示层,系统的可复用性提高。各层间松耦合,团队成员可并行工作,极大提高了开发效率。借助该平台,用户可实现对文档、公告、评论、积分、用户等的管理功能,以及文档浏览、搜索、上传、下载、评论等功能,实现校园文档的交流与共享。该平台有效地解决了高校普通存在的文档信息孤岛问题,为高校教学资源的共享和管理提供了良好的平台。
[1]张国平,王文虎,马丽.基于Struts和Hibernate的煤矿管理系统的设计[J].计算机技术与发展,2014,24(4):243-245.ZHANGGuo-ping,WANGWen-hu,MA Li.Design of the coal mine management system based on struts and hibernate[J].Computer Technology and Development,2014,24(4):243-245.
[2]刘晓娇,詹永照.基于J2EE的异地社会保障信息系统框架模型[J].计算机技术与发展,2013,23(3):30-34.LIU Xiao-jiao,ZHAN Yong-zhao.Framework Model of Different-place Social Insurance InformationSystem Based on J2EE[J].Computer Technology and Development,2013,23(3):30-34.
[3]张国平,马丽.Spring集成Acegi安全框架在J2EE中的应用[J].电子设计工程,2012,20(7):29-31.ZHANG Guo-ping,MA Li.Spring acegi integrated security framework in J2EE application[J].Electronic Design Engineering,2012,20(7):29-31.
[4]龚尚福,龚琴,冯健.基于ssh框架的EPON性能管理系统的设计与实现[J].计算机应用,2013,33(2):571-574.GONG Shangfu,GONG Qin,FENG Jian.Design and implementation of EPON performance management system based on SSH framework[J].Journal of Computer Applications,2013,33(2):571-574.
[5]张琳,李亚丽,马丽.基于ssh2的学生资助评价系统的开发[J].计算机技术与自动化,2014,23(1):137-140.ZHANG LIN,LI Ya-li,MA Li.Development of the student aid assessment system based on SSH2.[J].Computing Techonlogy and Automation,2014,23(1):137-140.
[6]张建军,刘虎,倪芳英.基于SSH与Highcharts整合架构的Web应用研究[J].计算机技术与发展,2013,23(9):245-247,251.ZHANG Jian-jun,LIU Hu,NI Fang-ying.Research and application of web architecture based on SSH and highcharts[J].Computer Technology and Development,2013,23 (9):245-247,251.
[7]谭力,杨宗源,谢瑾奎.Ajax技术的数据响应优化[J].计算机工程,2010,36(7):52-54.TAN Li,YANG Zong-yuan,XIE Jin-kui.Data response optimization of ajax[J].Computer Engineering,2010,36(7):52-54.
[8]陈必峰.基于Ajax的富客户端技术及应用[J].计算机科学,2011,38(10A):419-420,431.CHEN Bi-feng.Technology and appl ication of rich client based on AJAX[J].Computer Science,2011,38(10A):419-420,431.
[9]李路路,刘一松,蒋丽.基于Ajax与J2EE的进销存管理系统的设计与实现[J].计算机与现代化,2013(4):134-137.LI Lu-lu,LIU Yi-song,JIANG Li.Design and implementation of buying-stock-selling management system based on ajax and J2EE[J].Computer and Modernization,2013(4):134-137.