基于DRUPAL的校园网站群系统分析与设计
2012-11-04黄存东盛安元张前进
黄存东,盛安元,张前进
(安徽国防科技职业学院信息工程系,安徽六安 237011)
基于DRUPAL的校园网站群系统分析与设计
黄存东,盛安元,张前进
(安徽国防科技职业学院信息工程系,安徽六安 237011)
网站在高校信息化进程中发挥着重要作用,高校利用自身资源和技术优势,开发基于Drupal的校园网站群系统,为教师积累了工程项目的经验,也为相关专业学生综合实训提供了案例.主要针对该项目在实际开发过程中的系统分析与系统设计环节进行讨论,提出了网站群数据库设计及站点目录规划方法.
Drupal;网站群;内容管理系统;节点;分类
信息技术快速发展,加速我国高校信息化、网络化的发展步伐,以数字化为核心的信息技术在教学、科研、生产和管理等领域的应用越来越广泛.校园网站作为高校信息化组成部分,在高校信息化进程中发挥着重要作用[1].伴随高校网站的建设和发展,各种问题陆续显现[2]:一是网站信息安全问题严重,并呈上升趋势;二是信息更新不及时,时效性差;三是信息孤岛情况凸显,缺乏有效的共享.
面对上述问题,重新开发学院网站势在必行.讨论的焦点问题是项目外包还是自主开发.从技术成熟度、项目工期、风险等方面,项目外包具有一定的优势;从锻炼师资队伍、工学结合、可持续发展等角度,内部开发是更好的选择,但项目风险增加.学院软件技术教学团队勇敢地承担了校园网站群项目的开发任务.
1 系统分析
1.1 项目规划概述
任何工程项目都具备一定的风险,而软件项目更是具有高风险特征,做好前期的项目规划,是项目成功的重要保证.经过论证,我们决定采用开源产品,依托开源社区的支持,组织自身力量进行开发,但这种形式风险高,须做好合理的项目组织和管理[3],我们通过以下几个方面解决问题:
项目组织形式:由于项目成员是专任教师,无法全职参与项目,项目组织采用矩阵型组织结构.项目经理对项目的范围、进度、成本、质量总体负责,下设业务组、研发组和质量保证组,明确各自的职责与工作范围.
项目计划管理:在风险分析的基础上,制定切实可行的项目计划,合理分配资源,调整优化项目任务的进度和相互间衔接关系.
1.2 需求分析
需求分析是项目开发中最为重要的一个环节,统计表明,失败的项目大多数是因为需求问题[4].本项目团队开发人员对自身业务有较好理解,与业务人员较容易沟通,这是自主开发优势之一.需求分析主要涉及系统用户、界面需求、功能需求与非功能需求,如何结合Drupal平台特点去满足需求,是分析设计的重点.
1.2.1 系统用户
校园网站内容管理系统(Content Management system,CMS)用户范围较广,经过分析抽象,系统用户之间的关系如图1所示.
图1 系统用户层次结构
1.2.2 网站界面与栏目
在网站项目中,界面需求是较为突出的关键问题,网页表现形式的丰富性,使得每个用户对界面布局、界面元素、色彩的搭配都有自身偏好,界面美工组在需求分析组和业务组的配合下,设计几套不同风格的网页模板,通过会议的形式,征集各个层面的意见.在反馈的基础上,重新设计和修改,经过不断反复,最终确定了界面布局及风格.
本项目网站数量较多,包括主网站、部门网站和专题网站等.不同的网站栏目之间,往往有相互的联系,不但要分析内容的生产、管理及发布,而且要对内容的分类及层次结构进行分类整理,不断优化形成合理结构.
在系部网站,每个系部都有“专业设置”这个栏目,介绍本系的专业设置情况,经审核发布后,成为学院“专业设置”栏目的子集.其他的网站如招生信息网、就业信息网等,需要对学院的设置专业进行介绍,这些站点通过汇总系部发布的专业设置,成为网站“专业设置”栏目,浏览时按系部进行分类.通过这种分类与共享机制,解决了信息发布的单入口问题,避免重复发布,保证了信息的一致性.同时也保障了发布信息的实时性,一旦系部网站对专业设置内容进行修改,共享该内容的网站立即得以更新.
1.2.3 功能需求
本项目所涉及的功能需求主要有内容管理、站群管理、用户管理、日志管理等.Drupal作为一个开源内容管理系统,本身已经具备大部分功能,功能需求分析的主要目的就是比较功能的差异,在平台的基础上,进行定制或二次开发.
下面列出一些主要的功能需求:
(1)站群管理.在统一的平台下,能快速添加站点,新增站点应具有的最基本功能,功能扩展方便.站点之间权限、流程、资源信息互相共享与协同,通过Portal实现用户单点登录.
(2)内容管理.内容管理包括内容的创建、审核发布、撤销等,发布时可选择是否置顶或推荐到首页.在网站群中,共享内容在站点发布后,其他共享该内容的站点立即得以更新.网站管理员可通过内容发布状态、内容类型、内容层次结构等多种方式查询内容,能对内容进行批量操作,包括发布、置顶、删除、撤销等.内容类型可以自定义,内容的格式可以包括文本、图片、视频等.
(3)用户管理.基于角色的权限管理,按角色、部门分配用户.用户维护包括添加、修改用户,可启用或禁用用户账号.角色及部门维护包括添加、删除、修改角色及部门.权限分配通过角色细化到功能模块和内容类型.能通过角色、权限、用户状态多种条件组合,快速定位用户.对多个用户批量操作,包括启用或禁用用户账号,分配用户角色.具备用户密码强度功能,限制错误登录次数.用户可修改自己密码,也可通过邮箱找回密码.
(4)日志管理.记录用户登录、日常操作、越权操作、错误操作、调试等信息,并按事件严重程度进行分级,包括紧急事件、错误、警告、注意、一般信息、调试信息等,以备查询.按时段、操作对象、操作动作等多种方式查询日志.系统管理员可以删除、清空两天前的日志,两天内的日志,任何人都不允许删除.这样在发现问题后,日志可提供线索.日志能备份,自动删除超期日志,超期时长可设置.
1.2.4 非功能性需求
(1)系统环境约束.系统运行的操作系统为Windows,Web服务器为Apache,数据库为Mysql,系统采用构件化框架扩展灵活.
(2)性能要求.网站性能受网络状况、并发用户、访问流量诸多因素影响,在网络状况良好的情况下,平均页面响应时间小于4秒,能支持500个并发连接.
(3)安全性及可靠性要求.充分保证系统安全,系统漏洞能及时通过补丁包进行修复,仅开放必须的网络服务端口号.确保用户在授权的范围内进行操作,对用户的操作,日志系统应能详细记录.系统应具备良好的容灾、容错机制,完善的备份和恢复策略,当主服务器出现故障后,能快速切换到备用服务器上,保证网站服务质量.
(4)易用性要求.系统应具备良好的可操作性和易用性,支持鼠标拖拽操作,具有良好的用户体验.
2 系统设计
2.1 系统架构
系统架构设计应具备良好的可扩展性、易维护性,能灵活地适应各种变化[5].Drupal平台作为内容管理系统,具有良好架构设计.由于PHP语言早期版本不支持面向对象,Drupal是在PHP4语言基础上构建的,功能实现通过函数完成.但设计时充分吸收了面向对象的思想,系统架构如图2所示.
图2 系统架构图
从层次上划分,分成典型的三层结构:数据持久层、业务逻辑层和表现层.
数据持久层处理数据的持久化,是业务领域在具体数据库中的实现.持久层通过与业务逻辑层抽象数据接口,支持多种类型的关系型数据库.内置支持的数据库有Mysql及PostgreSQL,如果存储采用其他类型的数据库,比如Oracle、SQL SERVER,可通过对持久层的扩展而实现,不必对已有的代码进行大幅修改[6].
业务逻辑层基于业务领域对数据的业务逻辑进行处理,是架构的核心部分,包括核心库和模块组.核心库包含系统引导指令(Bootstrap)和常用公共支持库,在功能表现上,核心库提供了公共框架的功能,例如钩子框架、抽象数据接口、多语言支持等,使模块之间能高效灵活地协调工作.
表现层控制界面呈现,实现界面与数据分离,包含主题引擎和主题两个层次.Drupal架构通过表现层对界面输出进行定制.
2.2 系统基本功能设计分析
Drupal社区资源丰富,有大量的模块、主题及文档.常规的WEB应用通过已有的资源,便能满足大部分的应用需求.对于一些特定的应用,在现有模块或主题不能满足的情况下,则进行模块开发或主题开发与定制.开发模块必须深入研究框架,包括钩子机制、应用程序编程接口及系统数据库结构等.下面以节点与分类系统为例,对数据库结构进行分析.相关表如图3所示.
图3 节点及分类ER图
节点(node)与分类(taxonomy)构成Drupal内容管理的基础.节点可以理解为新闻、文章等,是被管理的内容.分类对管理内容进行分类组织,通过分类模块(Taxonomy module),支持多种分类方式,使内容之间具有某种内在联系或层次结构.
2.3 网站群设计
Drupal具备多站点的功能,一些第三方模块具有多站点管理功能,如 Multisite Manager Module、Druplet、Hostmaster2等.这些模块经过试用,发现功能上与本项目站群需求存在较大差异,无法直接使用.
在数据库层,规划设计4个数据库,分别是drupal、dep、cac及 xnwj,说明如下:
(1)drupal数据库:主站点数据库,该数据库保存所有站点共享的信息,如内容节点、用户等,共享模块对应的表,也存放在该数据库中.
(2)dep数据库:子站数据库,保存子站点的个性信息及非共享信息,如站点名称、非共享模块所对应的表等.
(3)cac数据库:缓存数据库,Drupal具有缓存功能,缓存数据保存在相关的缓存表中,通过系统自动生成,不需要备份.缓存数据单独建库,有利于数据库管理与系统备份,缩短数据备份时间.
(4)xnwj数据库:内部站点数据库,由于保密等方面的要求,内部站点内容不对外公开,不与其他站点共享,只允许校内用户访问.
站点目录规划:
(1)所有站点共享同一份Drupal代码.多站点如果每个站点都有单独的代码,一方面占用了磁盘存储空间,另外在升级维护时较麻烦,需对每个站点分别进行升级.共享代码方便系统的升级维护,主网站升级之后子站自动升级.
(2)sitesall目录:存放站群共享模块与主题,这些模块与主题能被所有站点安装启用,模块产生的表存放在主站点数据库中.
(3)sitesdefault目录:默认站点,定义为门户站点.
(4)子站目录:位于 sites目录下的 www.ahgf.com.cn.bwc、www.ahgf.com.cn.db 等目录,子站目录中可存放非共享的模块和主题,存放在modules和themes文件夹下.非共享模块生成的表在子站数据库中.
每个站点都有站点配置文件setting.php,通过该文件设置后台数据库.
3 结语
通过进一步工作,实现了基于Drupal网站群系统的关键技术,网站上线后,对系统日志进行分析发现,尽管网站曾遭受不同程度攻击,但并未出现信息安全问题,系统具有良好的健壮性.网站发布的各种内容数量已达1万余条,信息发布及时,具有较好的时效性.网站界面友好,得到师生及社会的广泛好评,具有较好的交互性.更为可喜的是,在计算机专业的综合实训中,该项目作为案例,极大地调动了学生的积极性,达到了意想不到的教学效果.
[1]张迎,宁玉文,高东怀,等.高校网站信息安全威胁与对策探析[J].中国教育信息化,2010,(5):28 -31.
[2]贺宏伟.开源软件教育应用管理平台建设研究[D].上海:华东师范大学硕士学位论文,2008.
[3]彭新哲.高校网站群管理平台有效整合资源[J].中国教育网络,2010,(7):78 -79.
[4]王爽.高校网站站群管理系统的设计[J].西安文理学院学报,2011,(4):77 -79.
[5]朱烜璋.基于CMS的高校网站群安全体系研究[J].信息安全与技术,2011,(8):90 -92.
[6]陈立,李兰友.基于LAMP的高校网站集群建设与管理研究[J].南京工程学院学报,2011,(1):36 -40.
TP393.18
A
1008-4681(2012)02-0054-04
2012-01-10
安徽省质量工程(批准号:20101686)资助项目;安徽省重点教学研究项目(批准号:20101689).
黄存东(1969-),男,安徽六安人,安徽国防科技职业学院信息工程系副教授,硕士.研究方向:信息安全、算法设计.
(责任编校:晴川)