Drupal的过去、现在以及未来

2015-03-03 02:58:18张文正
中国教育网络 2015年5期
关键词:开源信息化

文/张文正

Drupal的过去、现在以及未来

文/张文正

“毛坯房”Drupal虽然不能“拎包入住”,但比WordPress和Joomla的优势在于提供了强大得多的可配置性和开发框架。

Drupal是什么及其特点

Drupal是一款基于PHP的开源内容管理系统和开发框架;多次荣获“全球最佳内容管理系统”评比大奖;基于GPL授权,免费商用不侵权;典型案例有美国白宫、法国中央政府、英国政府OpenData、纽约时报、索尼音乐、哈佛大学等。

借助于盖房子的比方和一些流行的开发框架和内容管理系统的对比,我们能更直观清楚地了解Drupal。如表1。

表1 开源开发框架对比

该表中最底下一层和Drupal无可比性。主要来看Drupal和上下相邻两层的对比。

“毛坯房”Drupal虽然不能“拎包入住”,但比WordPress和Joomla的优势在于提供了强大得多的可配置性和开发框架,各个功能插件除了能够充分利用核心提供的框架之外,之间还能够互相调用。WordPress和Joomla缺乏这一特性,“精装房”定型的比较死,无法应用于对扩展性要求高的中大型解决方案,特别是Joomla社区的开源不彻底,渐有没落之势。Drupal比WordPress的劣势在于学习曲线比较陡,难以很快上手。

Drupal比Java play等快速开发框架的优势在于其提供了相当多的开箱即用的功能,尤其是拥有极多的第三方贡献的功能模块,减少了项目中定制开发工作量,降低了开发和维护成本。当然,劣势就在于“毛坯房”没有“预制件”灵活。但值得一提的是:现在已处于beta阶段的Drupal 8即基于流行的PHP的快速开发框架Symfony开发的,这进一步增强了Drupal 8的开发框架特性,其他Symfony的功能包可以不加修改或小幅修改后就能供Drupal使用。

Drupal相比同类系统的另一个很大的特点就是软件工程严谨性非常高,有编码标准、单元测试、代码审查、安全评估、Bug提交、补丁提交、版本管理、文档手册、产品生命周期管理等一系列规范的流程,且大家都可以参与其中,而非仅仅是功能模块的作者,这样也促成了极为活跃的社区参与和支持,形成了良性循环。这对于开源软件保持生命力最为重要。

Drupal的基本概念和支柱性功能

Field-able entity

Entity可以近似理解为以下二者的混合:面向对象开发中的抽象类和数据库建模E-R图中的实体。Entity是个抽象的概念,每种Entity可以拥有各种不同类型的字段(Field)和属性(Property)。其中:Entity的字段类似于数据库的字段,但是个超集,更侧重于功能应用,且可自由增删Entity的字段,即所谓Field-able entity,这一特性奠定了Drupal远超同类系统的灵活性的基石;而属性一般是在创建Entity时就定义好,用户不可增删,如:创建时间、作者等。另外,有个极为重要的字段Entity reference,类似于数据库设计中的主外键关系,实现了Entity之间的相互关联。

Views

Views主要是用来呈现展示Entity的,可理解为数据库视图和HTML模板的结合,它调用Drupal的数据库抽象层读取数据并使用各种格式将数据渲染出来,实现了后台数据和前台展示的解耦。这些渲染格式有日历、网格、幻灯片、瀑布流、360度全景图、时间线、Word文档、Excel表格、JSON、XML等。Views有个上下文参数,可以根据当前网址提供动态查询参数,实现了高级的动态(dynamic)内容显示。

Services

Services用于对外暴露调用接口,提供了最通用的、最易跨异构环境的HTTP RESTful接口(也提供了其他常用接口),提供了JSON/XML等多种常用数据格式。且有扩展功能模块用于调用外部接口,实现了系统内外互操作。这对于重视系统开放、资源共享的今天具有不言而喻的重大意义。

Rules

Rules用于以下场景:当发生某个(些)事件→满足某个(些)条件→执行某个(些)操作。这为设计业务流程提供了很大的便利。

以上几个概念(功能模块)都是基于Entity互相调用的,且每个功能点自身也是插件式架构,这为构建灵活复杂、可扩展的业务应用提供了无穷的想象力。同时,Drupal成熟的多语言机制、SEO、响应式主题等特性也大幅降低了构建面向国际的、现代化的Web应用的门槛和成本。

Drupal在国外大学的应用

在欧美发达国家,高校从来都是开源的主要使用者和贡献力量之一。Drupal也不例外,其本身就是由比利时安特卫普大学学生Dries Buytaert在2001年将他的程序按照GPL授权开源的。据Dries创办的Drupal云服务公司Acquia 2011年统计,全球Top 100大学中有71所大学使用Drupal,其中美国常春藤联盟大学无一例外。到今天,这一数字仍不断提高,如2014年底,牛津大学也转用Drupal构建他们的主页网站。国外高校同时也积极贡献代码,回馈社区,如表2(仅收录极少部分数据,且不包括企业贡献的面向高校的应用及K12学校的应用)。

Drupal在国外高校的主要应用领域有:WWW门户网站、内网业务应用系统、Drupal站群托管和自助建站、科学数据库、图书馆领域应用、全媒体发布、学习管理系统、学生社团应用等。

值得一提的是:斯坦福大学从2014年起每年在校园内举办一次Drupal Camp,高手云集;俄勒冈州立大学使用Drupal云服务托管一千多个网站(或Web应用)。这足见Drupal在美国高校中的流行。另外,还有人写了一本书《Drupal for Education and E-Learning》。

表2 国外大学对Drupal的应用

Drupal在中国和中国大学的发展

到了2006年,标志性版本4.7版发行后,国内就已有不少人在跟踪研究,并建设了国内的Drupal社区。2008年发行了Drupal 6后,Drupal已经发展成熟,稳居内容管理系统世界第一名。此时国内已有好几家公司基于Drupal提供服务。2011 年Drupal 7发布后,国内的Drupal社区也变得非常活跃,并从2013年开始,由从美国留学归来的人士在上海牵头举办China Drupal Camp。由于上海从事Drupal的外国人也比较多,所以从一开始,Drupal中国的社区就具有国际开放性。目前北京、上海、广州、深圳、南京、宁波、厦门、成都、贵阳、西安、兰州、乌鲁木齐等城市均有公司和团队从事Drupal开发和服务,其中也包含多家使用Drupal来基于互联网创业的公司。目前,这些公司和团队主要服务于外企(很多外企总部指名要求分部使用Drupal)、 “走出去”的中国企业等高端市场。

据笔者所知,国内高校最早公开使用Drupal的可能是哈尔滨工业大学于2010年上线的教师个人主页系统。标志性的事件是上海海事大学2012年使用Drupal重建的WWW主页,以及2015年初上海外国语大学和企业合作使用Drupal重建的内网Portal(一定程度上证明国内基于Drupal的研发能力已经能比肩甚至超越传统教育行业提供商)。上海纽约大学2013年也用Drupal开发了主页。中国科学院植物研究所使用Drupal建设的国家标本平台,含有1000万条以上数据,有丰富的查询、展现形式,应该是目前国内最大的Drupal站点。其他使用Drupal建设的高校网站有:南京师大的多个二级网站、中山大学、北大图书馆、清华大学图书馆、清华大学五道口金融学院等。另外,很有意思的是衡阳党建网(虽然不是高校界的),其风格和中国传统式政府网站一致,这说明Drupal的主题定制性非常灵活,并非只能做现代化风格的网站。

开源软件的发展离不开社区协作。随着中国Drupal社区的蓬勃发展,高校也组建了相应的社区。2013年10月上海海事大学王玉平在高校信息化委员会华东区青年会议上向大家介绍Drupal;2013年12月笔者在上海MIS年会青年会议上进一步推介,此次会议上Drupal被列为高校信息化委员会开源推进工作组首批3个项目之一;2014 年4月,笔者与王玉平面向全国做了一次Drupal网络视频讲座。此后,“Drupal在高校”QQ群(239613913)人数越来越多,从985高校和职业院校都有老师参与。并于2014年10月份上线高校Drupal协作推广网站及配套的严肃协作开发平台(版本控制、任务指派、问题跟踪)。现在基本上能保持每个月一次的在线视频交流讲座,由各位老师免费分享自己的案例和经验。也适当引入企业界Drupal高手加入,打造良性循环的Drupal生态圈。2014年底,温州大学向Drupal社区贡献了中国高校界第一个模块。目前,随着大家对Drupal了解的深入,2015年QQ群内的讨论更加频繁热烈。

Drupal在中国高教领域的机会

当前,我国高等教育领域的信息化工作有了三个明显的转变:1.建设重点已经从网络、存储等基础设施建设演进到信息化软件系统和教学科研信息化资源建设新阶段。2.师生用户在微博、微信等互联网产品快速功能更新和良好的用户体验的“娇惯”下,已经对高校信息化系统的需求有了很大的提高。3.对一线技术了解较为深入的70、80后青年教师逐渐参与项目选型决策。在这个新阶段下,产生了一个很大的矛盾:教育信息化行业传统服务提供商提供的产品和服务模式无法适应用户的新需求。一方面,由于教育行业项目金额相对较小,研发投入普遍不足,这些厂商难以招到高级IT人才,产品自身水平比较有限,如浏览器兼容性等基本问题比比皆是;另一方面,他们大多采用销售成型产品的模式,不大愿意定制开发,或者说定制开发的响应速度很慢,无法满足高校个性化需求,特别不适合边做边有新想法的迭代式项目。而这种快速迭代式项目在互联网产品的冲击下越来越多,如部分高校的移动App项目在微信的冲击下成了“僵尸”项目。而Drupal的开箱即用的基础框架、高可扩展性、高可配置性正好是解决该矛盾的一剂良药,允许甲乙双方适量试错,降低双方的时间成本和机会成本。

另外,有些人担心开源软件的质量和安全问题。其实,Linux和OpenStack的成功证明了这不是问题。就连一向不开源的微软2014年也开放了.Net Framework的部分源代码。现阶段很多成功流行的开源软件的质量要超过同类商业软件,更是远超国内商业软件;因为写得差的代码都不好意思被开源,更不可能流行。

国内有些厂商的产品因为核心开发人员的离职或其他原因就无法继续提供升级、维护等服务,校方过几年就不得不推倒重来,重复建设、浪费资金。这增加了双方的维护建设成本。而选用开源的Drupal将会大幅消除这些问题,也降低被某一家厂商“锁死”的风险。更为重要的是:基于Drupal这样扩展性好、生命力强的框架来开发高校业务系统,能使业务系统可持续运营,能将数据积淀下来,甚至能建成信息化时代下的校园文化品牌,并对决策支持产生实实在在的支撑。

笔者保守估计,中国高校现有的这些基于Web的应用业务系统,大约有20%~30%可以使用Drupal来建设,且易用性、可扩展性会大幅提升,能带动信息化水平的整体提升。具体讲,根据开箱即用的程度和可扩展性,Drupal特别适合以下领域的应用(其实,几乎所有数据密集型应用都可以使用Drupal来做)。

1.多语种网站群:实现国际化、真正的多语种网站群。这对于985、外语类高校建设世界研究型大学非常有意义;

2.ITIL系统:知识库、工单管理、工作日志(自动生成)、项目管理、配置管理、自助服务、软件版本库管理等;

3.移动应用和微信开发者模式的服务器端:Drupal实现内容管理,将内容开放给移动应用和微信调用;

4.图书馆&知识典藏:RDF、Dublin Core等元数据、知识管理、扫描件数字化(光学文字识别)、影音资料管理等;

5.学术会议管理系统:论文在线提交、评审、发行,食宿预定等;

6.表单数据密集型应用,如:招生管理、校友管理等等;

7.学生社团管理:通知发布、募捐、活动档案、简历辅助生成等;

8.科研管理社交系统:科研数据提交、计划执行、交叉学科社交协作等等。

Drupal自带了CAS/LDAP/Shibboleth等单点登录功能,能使用MySQL、Oracle、SQL Server等主流数据库,对于高校信息化环境具有先天的亲和性。当然,我们也需要知道Drupal的弱点,主要是:1.不适合做流程密集型应用,如OA等;2.不适合调用面向Java应用的SDK,但可以通过PHP/Java Bridge来弥补,或者让服务端的Java应用提供HTTP接口(这些年随着RESTful和oAuth的流行,这个问题也越来越少)。

Drupal在中国高校应用的挑战

当前的主要挑战还是在于Drupal在中国高校是新事物,大家的认识还不够,提供基于Drupal的教育行业产品和解决方案的厂商在业界还是“新人”。在此情况下,很多青年教师们都是自己基于Drupal来开发网站和Web应用,由于体制的限制,没有额外的项目奖励和荣誉,难有可持续的动力。鉴于此,笔者在此斗胆呼吁高校信息化委员会建立起可持续、可执行的优秀开源软件推广机制,从高层推介、厂商加入、科研课题、项目协作、职称评定、物质奖励等诸方面予以实质性的支持,将开源推广落到实处。

期待在不久的将来,Drupal和其他优秀的世界级开源软件能在中国高校遍地开花,从技术上助推体制改革,将中国教育信息化提升到一个新水平。

(作者单位为上海外国语大学信息技术中心)

猜你喜欢
开源信息化
月“睹”教育信息化
月“睹”教育信息化
幼儿教育信息化策略初探
甘肃教育(2020年18期)2020-10-28 09:06:02
五毛钱能买多少头牛
2019开源杰出贡献奖
“云会计”在中小企业会计信息化中的应用分析
活力(2019年21期)2019-04-01 12:16:40
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
开源计算机辅助翻译工具研究
信息化是医改的重要支撑
中国卫生(2014年1期)2014-11-12 13:16:34