基于开源软件Drupal工程实践
2012-01-15盛安元黄存东张前进
盛安元,黄存东,张前进
(安徽国防科技职业学院信息工程系,安徽六安237011)
校园网站作为高校信息化组成部分,在高校信息化进程中发挥着重要作用。安徽国防科技职业学院校园网站从静态网页技术,发展到asp动态网页技术,为学院的发展作出积极贡献。作为学院信息门户,其战略地位和重要性不言而喻,是对外服务的窗口,对政策宣传、教学科研、招生、就业等工作有着重要影响[1]。
随着环境变化及学院自身快速发展,校园网站已不适应发展的要求,比较突出的问题有:安全问题严重,页面被篡改、被挂马的现象时有发生;页面内容表现形式单一,用户体验不友好;内容分类不合理,缺乏共享机制;网站运营维护困难。学院对此组织人员进行论证分析,提出依托自身力量,对校园网站重新进行开发。
1 项目可行性研究
商业公司具有的丰富的行业经验及成熟的产品,提供专业服务,采取项目外包方式,项目实施周期短,风险较低。但比较而言项目外包开发费用较高,在后期的系统维护中,功能定制及扩展,往往需要商业公司的服务支持。
学院自行研发,风险较高,包括技术风险、项目组织及过程控制等方面。在充分识别风险的基础上,做好项目的规划和过程控制,能有效降低风险,保障项目成功[2]。由于学院近年来加大工学结合的力度,双师型教师比例逐年上升,具有实际工程经验的教师越来越多。通过组织自身力量进行开发,能有效锻炼研发队伍,提升教师研发能力,推进工学结合建设。从经济方面分析,自行研发费用较低,能有效降低项目成本。在网站项目的运行维护期间,自行研发具有较大优势,能灵活适应变化,特别是对于时效性较强的需求,能及时响应。
2 网站平台选择
目前越来越多的网站以内容管理系统(CMS)作为网站系统平台。对内容管理系统的研究,国外起步较早,有较多的内容管理系统产品、专业研究机构及行业门户网站,形成完整的行业信息与评测体系[3]。在自行研发中,高校根据自身特点和需求,选择合适的产品,是校园网站建设关键点之一。根据成功案例、技术的先进性、使用的广泛性和难易程度等多个指标,通过对不同的CMS产品进行比较分析,最终选择开源产品Drupal。
Drupal能快速构建网站,高度模块化,可扩展性良好。具有良好的跨平台性,适应较多操作系统,支持主流WEB服务器。Drupal应用广泛,连续获得全球最佳开源CMS大奖,用于构建个人、部门或企业网站,对电子商务、资源分类、图库等有较好的支持。从开源内容管理系统产品在.edu域名所占比率进行比较[4],如图1所示,Drupal约占26.9%,占据第一位,说明 Drupal在教育机构中应用较为广泛。
图1 内容管理系统产品在.edu域名网站中所占百分比
Drupal社区资源丰富,用于功能扩展的模块数量已达1万4千多个,开发者众多,功能稳定并持续改进。这些成绩的取得,得益于其良好的架构设计,作为开源内容管理系统框架,在设计上,Drupal采用反转控制设计模式[5],系统架构如图2所示。
图2 系统架构图
系统逻辑结构可分成典型的三层结构:数据持久层、业务逻辑层和表现层。数据持久层处理数据的持久化,通过业务逻辑层抽象数据接口,支持多种关系型数据库,如Mysql、PostgreSQL等。业务逻辑层是架构核心部分,包括核心库和模块组。核心库包含系统引导指令和公用支持库,提供钩子框架、抽象数据接口等公共框架的功能,使模块之间能高效灵活的协调工作。开发者利用特有的钩子(Hook)调用机制,通过模块实现系统功能扩展。表现层控制界面呈现,实现界面显示与数据分离,为界面定制提供灵活接口。
3 项目组织
本项目业务范围广,团队所涉及的新技术点较多,团队成员大部分是专任教师,无法全职参与项目。项目组织采用矩阵型组织结构,综合职能型纵向优势和项目型的横向优势。学院积极创造条件,在项目资金、团队工作环境等方面,提供组织保障。在项目过程中,通过多种措施,保证团队成员高效沟通[6]。研发团队定期举行项目例会,交流进展情况及配合要求;建立项目QQ群,方便团队成员及时交流。通过Subversion建立配置管理环境,对项目文档、软件及代码进行配置管理,保障工程质量。
4 项目计划与过程控制
制定项目计划,合理分配资源,调整优化项目任务进度和衔接关系。制定项目计划时要充分考虑如下因素:①网站平台的选择,网站平台的选择在网站开发中至关重要,预留充分的时间进行CMS平台测评分析;②加强团队学习,对于Drupal平台,研发成员过去都未曾接触,通过集中学习交流,迅速掌握相关技术;③以点带面,先行技术验证,以门户站点和信息工程系子网站作为试点网站,按网站群[7]方式进行构建,积累经验降低风险。
过程控制:强化项目过程控制,通过对项目关键节点评审,广泛吸收各方意见,博采众长集中智慧,对项目过程出现的偏差及时调整,保证项目进度和质量。
5 结束语
网站从2009年10月正式上线至今,在2年多的时间内运行良好。高校充分发挥自身的科研优势,通过开源软件解决实际问题,在节约有限科研经费的同时,强化了团队建设,提升了工程能力。开源软件产品数量众多,项目初期应进行充分的调研,综合应用的广泛度、系统架构、成功案例等多方面因素,进行评估分析,遴选出合适开源软件至关重要。项目执行过程中,通过对关键节点评审,保证项目的质量。在项目维护期间,应在原研发团队的基础上组建维护小组,使系统保持正常运行或持续改进。
[1] 楚文波.高校内容管理系统的设计与实现[D].长春:吉林大学,2008.
[2] 唐天广,吕本富.Web软件项目的风险管理研究[J].管理评论,2009(3):43-47.
[3] 贺宏伟.开源软件教育应用管理平台建设研究[D].上海:华东师范大学图书馆,2008.
[4] Anon.Distribution of content management systems among websites that use.edu[EB/OL].[2012-3-30].http://w3techs.com/technologies/segmentation/tld-edu-/content_management.
[5] Matt Butcher.Learning Drupal 6 Module Development[M].America:Packt Publishing,2008.
[6] 吕伟峰.论IT信息化项目的沟通管理[J].中国科技博览,2011,15:223-224.
[7] 王爽.高校网站站群管理系统的设计[J].西安文理学院学报(自然科学版),2011,14(4):77-79.