林莉莉
摘 要:网络交流方式的多样性是当今时代发展的显著特点,论坛交流是当前网民普通交流和获取信息的主要通道之一,面对互联网中涌现出的针对各种行业的网络论坛,如何对其进行合理有效监管,是当前对网络论坛研究的热点之一。因此,开发一个管理论坛发帖、回帖、针对关键字查询、对论坛用户进行分析的论坛信息管理系统非常必要。
关键词:论坛 SSH框架 系统设计
中图分类号:TP393 文献标识码:A 文章编号:1672-3791(2016)10(a)-0011-02
该文采用当下流行的J2EE技术,在MyEclipse的基础上,结合SSH框架对论坛系统进行了详细设计,主要包括系统功能设计、系统功能模块结构设计、数据库设计以及处理流程设计。
1 系统功能设计
论坛信息管理系统主要实现了论坛信息抓取、信息查询、用户行为分析以及系统管理4个模块,每个大模块又各自包含了其中的子功能模块。首先,该文结合数据挖掘以及正则表达式设计了一个简单的网页爬虫,对某论坛的网页布局进行了分析,以完成对论坛的发帖、回帖以及用户信息的检索,并按照固定的格式将它们存储于数据库中,以便于后续对论坛信息的管理和分析。然后在信息查询模块中,可以分别对用户发帖信息、回帖信息进行管理,根据时间、用户名、发帖地址以及回帖信息进行查询,并可以查询得到的查询记录详情和得到帖子的详细内容以及url等信息。同时根据系统管理模块中添加的关键字,在关注信息模块中,得到所有包含关键字的帖子,用户信息模块则可以查询所有用户相关信息,也可以根据用户名以及用户的职业进行查询。
在一个完善的系统中,安全的系统登录和管理功能是必不可少的,因此在系统管理中添加了账户管理功能,对系统管理员用户的用户名、密码进行增加、修改、查询以及删除操作,同时,为了防止数据库中泄露管理员的密码,该系统对管理员用户的密码进行了MD5加密,在数据库中只能看到加密后的密文,只有系统管理员才能对所有用户的用户名和密码进行管理。同时,该系统还对部分管理员进行了权限设置,通过用户名为sa的系统管理员可以添加其他管理员用户,而其他管理员用户只能对自己进行管理。
2 系统架构设计
论坛信息管理系统开发周期较短,需求复杂多样,对系统的稳定性、扩展性和可维护性要求较高。该系统充分借鉴J2EE分布式体系结构,结合Struts、Spring、Hibernate进行开发。这样的设计可以使系统开发模式化,能够生成结构严谨、规范有效的应用程序。各项业务按照功能模块细化拆分,然后由系统整体的配置文件实现对所有业务流程的具体控制和调用,以此实现业务逻辑与用户界面的分离,降低了系统的耦合度,同时也提高了系统的可移植性和可維护性。按照上述开发思路和技术要求,基于SSH架构的论坛信息系统分为3层,页面表现层、业务逻辑层以及数据持久层。
在该系统中,Struts主要负责在Struts.xml中对信息查询、用户行为分析、系统管理等每个模块对应的页面与后台之间提供交互,包括查询结果、明细信息、页面维护等,即展现层的页面处理,如页面上查询条件的选择,通过jsp页面中的action到相应的Struts.xml中找到相应的java类,然后处理完后返回到对应的网页。Struts主要控制了逻辑的处理。
在论坛信息管理系统中,Strtus容器负责处理用户请求,提供业务逻辑控制功能,通过各种action的页面处理,与展现层相连接;Spring容器提高了Javabean的松耦合性,通过控制反转和依赖注入,提供了对论坛信息处理系统的轻量级的处理;Hibernate容器对JDBC进行了封装,从而对页面得到的各种论坛信息数据进行处理。
3 数据库设计
数据库是论坛信息管理系统的信息基地,它包含发帖信息、回帖信息、用户信息、管理员信息、关键字信息以及与用户信息中地点相关的全国省市表,同时包括用户单位时间内发帖的视图、用户单位时间内回帖的视图、用户异常信息的视图等。这些数据之间有各种直接或间接的对应关系,系统的每个功能模块都需要操作一个或多个数据实体,如用户信息对象,用户发帖信息对象用户回帖信息对象等,下面具体介绍一下该系统用到的几个重要的数据实体。
3.1 发帖信息对象
发帖信息对象包括id、发帖时间、用户名、国家、省份、城市、url、语言、主题、帖子内容、tid、帖子状态、关键字等属性。
3.2 回帖信息对象
回帖信息对象包括id、回帖时间、用户名、国家、省份、城市、url、语言、帖子内容、tid、帖子状态、关键字等属性。
3.3 用户信息对象
用户信息对象包括用户名、密码、职业、创建时间、uid等属性。
3.4 管理员信息
管理员对象包括id、是否有效、创建时间、修改时间、用户名、密码等属性。
3.5 关键字信息
关键字对象比较简单,只包含id,关键字两个属性。
3.6 地址映射信息
地址映射信息主要包括中国主要省、省内地级市以及部分国外城市对应的映射表,它包含国家、省份、城市属性。
4 处理流程设计
论坛信息管理系统分为论坛信息抓取以及后台的信息查询、用户行为分析和系统管理几个模块。
4.1 论坛信息抓取流程
从论坛主页的页面中获取每个论坛版块的网址,并将它们存入容器中,对容器中每个论坛版块进行遍历,然后在各版块页面获得每个帖子的名称、链接等信息。通过网址链接到每个帖子的网页,在页面上获得帖子的信息,即每个发帖和回帖的标题信息、用户名、时间以及帖子内容,并通过区分帖子楼数来区分发贴和回帖,同时获得在页面中需要获得用户信息,即用户名、职业、注册时间等。在这个过程中,还需要根据页面的页数来确定该版块或者帖子页面有几页,是否需要对链接的下一页继续处理。最后将获得的发贴信息、回帖信息以及用户信息根据固定的格式存入数据库,以便于信息查询模块、用户行为分析模块以及系统管理模块的处理。
4.2 信息查询流程
对于发帖信息查询模块和回贴信息查询模块,系统管理员可以根据用户名,发帖时间、用户地址等查询每个帖子的用户名、发帖时间、发帖标题,以及回帖人的用户名、回帖内容、回帖时间等信息,同时,当点击某一条记录后,可以看到该记录的详细信息,包括帖子url,帖子主题、注册时间、详细内容等。在某一条记录的最后一列,还可以针对该记录对应的用户,将该发帖或者回帖加入特殊名单,则该用户所有的发帖或者回帖都会变成红色,方便系统管理员进行管理,当查询完毕后,也可点击退出,则该用户发帖或者回帖恢复成正常颜色。
4.3 用户行为分析流程
用户行为分析包括活跃用户模块、异常用户模块以及舆论领袖模块,主要根据用户名查询用户的活跃度、异常度以及关注度,查询结果根据相应参数进行排序,每条查询结果点击则可以获取其详细记录。
4.4 系统管理流程
系统管理分为关键字管理与账户管理两个模块,管理员可以对关键字进行增加、删除、修改以及查询操作,帐户管理模块负责对系统管理员的增加、删除、修改以及查询操作,同时增加了对系统管理员的简单权限处理,如果当前登录用户为sa,则可以对所有系统管理员用户进行管理,如果是其他用户,只可以对自己进行管理。
5 算法设计
对于一个规范的论坛系统,主页包含着各种不同的版块页面,对一个版块页面又包含每条帖子的目录,如精品帖、普通帖等,一般按照回复时间排序,对一个帖子又可以根据连接访问其帖子页面,帖子页面包含各条回复(现在网络中一般对于每条回复称为几楼,发帖人又被称为楼主),因此对于这样一个树状结构,人们常采用的检索办法是广度优先搜索算法和深度优先搜索算法。鉴于该系统主要是对论坛中的发帖和回帖进行抓取,而搜索部分的实现则是在数据库中进行简单查询,所有的帖子节点都必须被存储,故两种算法的空间复杂度相同,都为O(|V|+|E|),其中|V|是帖子节点的数目,而|E|是上图中边的数目。而从程序的结构性考虑,从主页根据版块地址往下进行深度优先遍历更容易实现,故该系统采用的是深度优先遍历算法,将论坛中的所有帖子进行存储。
6 论坛信息数据的实时更新
对于论坛信息数据的实时更新,该系统采用的是每10 min进行重新抓取,在每次抓取数据时,会在数据库中进行存储当时的系统时间,下次抓取时则对当前系统时间与之前时间进行比较,对帖子页面中最后一楼的时间进行分析,若大于之前时间,就进行存储,若小于则返回版块页面继续遍历。
该文从系统的整体结构、模块层次结构、系统架构、数据库、处理流程以及算法等几个方面给出了相应的设计。主要对论坛信息抓取、信息查询、用户行为分析、系统管理进行了分析和设计,实现了论坛对各种信息的全方位管理。
参考文献
[1] 中国互联网信息中心.第31次中国互联网络发展状况统计报告[J].互联网天地,2013(10):74-91.
[2] 李科.论网络论坛的发展对中国公共政策的影响[J].现代商贸工业,2009,24(8):239-243.
[3] 肖晨陽.一种互联网舆情监控软件实现[J].电脑知识与技术,2012,8(12):8177-8179.
[4] 王雪.基于Struts+Spring+Hibernate 框架的企业培训管理系统的设计与实现[D].吉林大学,2012.
[5] 钱雪忠,罗海驰,陈国俊,等.数据库原理及技术课程设计[M]. 北京:清华大学出版社,2009:67.
[6] 薛华成.管理信息系统[M].5版.北京:清华大学出版社,2007:43.
[7] 张玉峰,王志芳.基于内容相似性的论坛用户社会网络挖掘[J].情报杂志,2010,29(8):125-130.