任 伟, 王定银, 罗 萍
(成都医学院 人文信息管理学院, 四川 成都 610500)
随着Web 技术的发展和高校信息化水平的提高,同时处于大数据时代,对于高校网站建设的规模日益扩大。 从学校门户网站到各系部、行政机构网站,它们已经成为了学校及各部门对外宣传、提供公共服务,开展教学管理的重要平台。然而,网站数量的增加,站点分布的零乱,信息发布的监管缺失等一系列的问题也给网站管理者带来了相当大的管理难度[1]。 因此,我们采用的核心技术是基于国外最著名的开源软件Drupal 进行站点建设, 同时采用第三方开源模块hostmaster 进行Drupal 站点管理平台搭建。
Drupal 软件是世界上最先进的开源内容管理系统之一,由于Drupal 本身功能强大,还被称作网站操作系统。 Drupal有2 万多个模块,2 万多个活跃开发者。 相比WordPress、PHP-Nuke、Drupal、Joomla、Discuz!等CMS,Drupal 在信息的创建、组织、管理、协作、互联、设计、展示及可扩展方面具有无与伦比的优势。 各行各业的顶尖用户都在用Drupal。
国内外知名图书馆都在使用Drupal 构建自己的站点。国内有清华大学图书馆、北京大学图书馆、台湾大学图书馆、澳门大学图书馆以及安徽国防科技职业学院;国外则有哈佛大学图书馆、耶鲁大学图书馆、普林斯顿大学图书馆、康奈尔大学图书馆、斯坦福大学图书馆、纽约公共图书馆、澳大利亚图书馆等等。 利用Drupal,图情单位可以很方便的构建图书馆门户网站(含移动开发应用)、学术主题博客、学位论文管理、图书馆MOOC、开放学术社区、机构仓储等信息系统,并可以进行大数据、语义网等方面的研究。
2013 年已经在清华大学图书馆、上海图书馆、中国科学技术信息研究所、云南大学图书馆等成功举办6 次Drupal 培训,200 多位图情界老师参加培训,取得良好的效果。 图情界基于Drupal 的一些新网站、新应用不断上线。
校园网的网站数量繁多,为了便于管理和维护,从来展开对国内外的站群管理系统进行研究。 考虑到平台的可扩展性和持久性,采用了美国主流的CMS—Drupal 为基础展开研究和分析并设计。 所有站点都是基于Drupal 进行建站,然后再通过平台对这些Drupal 站点进行管理和维护。
平台运行环境可以参考hostmaster 社区[2],软件和硬件的详细分别如表1 和表2 所示。
网络环境:采用校园局域网接入,保证带宽100 Mbps 或以上;对外公网服务,保证出入带宽5 Mbps。
表1 硬件配置要求Tab. 1 Hardware configuration requirements
表2 软件配置要求Table. 2 Software configuration requirements
平台架构设计易扩展、灵活、牢固、方便[3]。以Drupal 作为内容管理系统,具有良好架构设计。 PHP 语言早期版本并不支持面向对象编程,Drupal 在PHP 4 语言基础上构建的,目前已经更新到PHP 5 及以上, 功能实现通过Drupal 核心的api 里的hook 函数及部分核心定义的函数实现[4],同时目前也支持自定义函数(一般不建议修改核心部分)。 Drupal 前后端相互独立但又有一定的耦合性,这也是Drupal 强大和灵活的原因之一。 平台设计时充分展现了面向对象的思想进行构建。 该平台可以轻松实现Drupal 站点的管理、迁移(导入和导出站点)、远程备份等功能,通过该平台可以轻松快捷地创建Drupal 站点,充分体现了Drupal 里面的node 思想,将每个站点当成一个节点,同时也方便控制。 系统平台架构和平台实体关系图如图1、图2 所示。
平台结构说明:从层次上划分,分为传统的三层结构:表现层、业务逻辑层和数据访问层[5]。
图1 平台架构图Fig. 1 Platform architecture diagram
图2 Hostmaster 平台实体关系图Fig. 2 Hostmaster platform entity relationship diagram
表现层针对每个站点的前端,直接呈现给用户的信息并进行交互, 前端界面与数据分离, 分为主题引擎(TemplatePhp)和主题(Theme)两个层次。 Drupal 架构通过表现层对界面输出进行定制或者开发。
业务逻辑层基于不同业务领域对相应数据的业务逻辑处理流程,是架构的核心部分,包括核心库和第三方模块,以及自定义模块。 核心库包含系统引导指令(bootstrap) 和常用公共支持库, 在功能表现上为核心库提供了公共框架的功能,使模块之间能高效灵活地协调工作。
数据层负责处理数据,是业务领域在具体数据库中的具体实现。 数据层通过与业务逻辑层抽象数据接口,支持多种类型的关系型数据库。 内置支持3 种数据库: mysql、pgsql和sqlite。 根据实际需求,如果存储数据采用其他类型的数据库,比如SQL SERVER、Oracle database,可通过对持久层的扩展而实现,不必对已有的核心代码进行大量修改[6]。
Drupal 里面涉及的钩子大概分类3 类:module_invoke_all调用的钩子,module_invoke 调用的钩子, 以及主题函数也被称之为主题钩子。
Drupal 的模块系统是基于hooks (又称钩子) 机制运行的。一个钩子是名为foo_bar()这样一个PHP[7]函数,其中“foo”是模块的名称(其文件名是foo.module),“bar”是钩子的名称。每个钩子都有一个定义的参数设置和指定的结果类型。
为了扩展Drupal 的功能,一个模块需要简单地实现一个钩子。 当Drupal 希望允许干预模块,它决定了哪些模块实现一个钩子,调用所有启用的模块的钩子以实现它。
可用的钩子去实现功能在开发者钩子部分的文档有所解释。 字符串“钩子”被用作占位符的钩子定义模块的名字。例如,如果模块文件称为example.module,然后hook_help()通过该模块实现将被定义为example_help()。
包含的示例函数不是Drupal 核心的一部分,它们只是你可以修改的模型。 当运行Drupal 的时候,仅仅是模块中的钩子执行。 Drupal 8 之后hooks 机制会逐渐淘汰了,现在处于转型期。
每个Drupal 站点被所属平台管理, 而每个平台又被Server 管理,所有的Servers 被Hostmaster 管理。 从某种角度也可以说,Hostmaster 管理所有的东西。
平台管理员下面,根据权限不同分类,默认由匿名用户、注册用户、Aegir 账户管理员、Aegir 管理员、Aegir 客户端管理员(通过samba 远程管理平台)五类角色组成。 平台管理可以根据实际需求添加另外的角色并赋予权限,同时可以在每个角色类别下面添加相应的成员。
平台管理员登陆后,会进入如图3 所示的界面。 在这个界面下,平台管理员拥有该平台所有权限。 头部由功能菜单、logo、平台名字组成(logo 和平台名字可根据需要进行更改)。下面内容部分由站点信息、平台信息、数据库服务器信息以及客户端信息的操作等组成。
图3 平台登录界面Fig. 3 Platform login interface
通过进一步对平台尝试, 实现了基于Drupal 站点管理平台的关键技术,站点管理平台上线后对日志进行分析,发现平台曾遭受不同程度攻击以及信息安全问题, 系统具有良好的健壮性。 该平台的实施,也极大地调动了学生的积极性,不仅锻炼了学生的实践能力,同时也了解和学习了国外的前沿技术。
[1] 肖海鹏. 站群系统在高校网站建设中的应用[J]. 福建电脑,2011,27(10):151,116.
XIAO Hai-peng. Station group system in the building of the university’s website[J]. Fujian Computer,2011,27(10):151,116.
[2] hostmaster社区[EB/OL]http://community.aegirproject.org/.
[3] 朱烜璋. 基于CMS的高校网站群安全体系研究[J]. 信息安全与技术,2011(8):90-92.
ZHU Xuan-zhang. Studies of security system about university site group based on CMS [J]. Information Security and Technology,2011(8):90-92.
[4] 黄存东,盛安元,张前进. 基于Drupal的校园网站群系统分析与设计[J]. 长沙大学学报,2012,26(2):54-57.
HUANG Cun-dong,SHENG An-yuan,ZHANG Qian-jin. Campus website group system analysis and design based on Drupal[J]. Journal of Changsha University,2012,26(2):54-57.
[5] 高大力. 关于高校二级网站建设、 管理的探索与实践[J].西北工业大学学报,2004,24(2):82-84.
GAO Da-li. Research and practice of construction and management for sub-websites in universities [J]. Journal of Northwestern Polytechnical University,2004,24(2):82-84.
[6] 陈立, 李兰友. 基于LAMP的高校网站集群建设与管理研究[J]. 南京工程学院学报,2011,9(1):36-40.
CHEN Li,LI Lan-you. Study on website group construction and management at colleges based on LAMP [J]. Journal of Nanjing Institute of Technology,2011,9(1):36-40.
[7] 张欢. 基于Web的AIS/北斗导航系统研究[J]. 电子设计工程,2013(22):8-10.
ZHANG Huan. Research on AIS/Compass navigation system based on Web[J]. Electronic Design Engineering,2013(22):8-10.