APP下载

开源软件在教育信息化支撑平台中的选择与应用

2014-11-28崔巍峰

中国电化教育 2014年6期
关键词:源代码精品课程开源

崔巍峰

(山西省电化教育馆 项目管理部,山西 太原 030027)

开源软件在教育信息化支撑平台中的选择与应用

崔巍峰

(山西省电化教育馆 项目管理部,山西 太原 030027)

2013年,“开放”“共享”的理念,伴随着以MOOCs为代表的在线教育热潮,再一次成为研究者和实践者关注的焦点。事实上,资源和应用的开放热潮早在MIT“开放课件计划”时代便已经被提出,并伴随着“开放式教育资源”(OERs) 运动在全球范围内得到了推广普及。该文回顾了开放源代码软件的发展历程,结合当下中小学信息技术应用的现状,分析了在不同环节可供选择的开放源代码软件,探讨了现代教育技术信息支撑平台软件系统的建设过程中,开源软件的应用场景与选型建议,以期促进中小学在低成本、高效率的基础上进一步提升信息技术应用水平。

开源软件;现代教育技术;信息平台

教育的发展必须依靠信息平台的支撑,这一点已经得到了学术领域的共识,并得到了政策方面的保障,写入了《国家中长期教育改革和发展规划纲要(2010-2020年)》。而随着“三通两平台”工作的推进,新一轮学校教育信息化发展的热潮正在来临。一方面,学校老师得益于网络硬件水平的提升,可以更为顺畅地获取海量资源;另一方面,“两平台”之一的“国家数字资源公共服务平台”的建设,也给教师获取资源提供了多样化的渠道。随着教师对于信息技术技能的逐渐掌握,对于软硬件产品的需求也越发强烈,虽然在云计算的理念下,IaaS和PaaS两种模式展现了一种美丽的前景,但不可否认的是,就现有我国的网络软硬件水平而言,学校的软硬件需求完全依靠云计算技术来解决还不现实,还存在着大量的单机或者局域小范围内软硬件产品的需求。硬件——主要是计算机、服务器、网络设备、电子白板等设备的获取,不在本文关注之列,本文重点论述如何给予开源软件搭建现代教育技术支撑平台,满足中小学校的一般性需求。

一、开源软件概述

“开放源代码软件”(Open Source Software,OSS)通常是指基于各种开放源代码许可证(如GPL、BSD 等)而发布的软件。与商业软件相比,开源软件的一个突出特点是,用户不仅可免费获得程序的源代码,而且还可以自由复制、修改和分发程序源代码。开放源代码软件最显著的优势是可以节省软件使用者的“总体使用成本”(TCO),因为使用者无须支付使用许可费(License Fee)。研究资料显示,此部分费用通常占到TOC的20-30%左右,并且机构规模越大,其使用许可费用也就越高。根据研究资料,除具有使用成本方面的优势之外,开源软件的特点还包括:使用的非依赖性、使用的安全性与隐私保护、源程序的可修改性、崇尚开放性的标准、可自由实施基于OSS的开发[1]。开源软件的历史源自著名的操作系统软件Linux,事实上,目前主要的开放源代码许可证GPL和BSD,都是在研究和规范Linux开源的过程中产生的。开源许可协议[2][3]有数十种,主要规约对于源代码的修改。然而,对于学校老师和学生而言,他们几乎不会去修改源代码并进行传播,因而开源许可协议对他们基本上没有任何意义,本文对此也不做重点论述。

开源软件在满足需求与降低成本之间能够产生较好的平衡,其主要特点有:

(1)没有许可证收费。学校软件的使用者主要为师生并且需求巨大,而学校对于用于购买软件的经费相当紧张,免费许可的开源软件是一种很好的选择。需要说明的是,许可证免费不代表软件完全免费,如Linux产品,虽然有免费的Linux可供选择,但同时,一些遵从开源许可协议的公司产品是要收费的——这取决于用户的需求。

(2)适应性。开源产品具有定制性和可涉及第三方当事人。新的功能和工具可从开源码社区输入并且能够及时更新,能够满足不断变化的需求。

(3)服务连续性。开源代码社区庞大的合作网络虽然不可将停止服务的风险根除,但能把它降到最低,对于用户而言,获得持续性的技术支持基本上是有保障的。

(4)持续的改善。广泛的合作确保了软件产品不断地改善。来自不同机构的编程人员和志愿者可以自由地参与到该项目中,可以持续提供新鲜血液。

由于开源软件的更新、支持服务是自发的而缺乏法定意义上的固定机构的强制性支持,因此用户需要冒一定的风险,即没有人能够保证一个项目可以顺利完成并达到预期的目标。但总体而言,一些成熟的、广泛使用的软件产品的支撑团队还是数量非常庞大的,值得信赖,可以为我们搭建信息技术支撑平台提供支持。

二、基于开源软件的现代教育技术信息支撑平台

信息技术的出现和普及, 尤其是基于互联网的远程多媒体传输系统的大规模应用,引发了关于知识的全方位革命,它不仅改变了我们的学习手段和学习环境,更改变了我们的教育观念。这些改变之所以能够发生,最大的原因是基于信息技术平台,在教育教学过程中,从教学资源的多样化、信息渠道的多元化、课堂教学的开放化、教学手段的智能化、教学过程的情景化、教学进度的个性化、教学管理的精细化等多个方面,提供以前单纯依靠人力不能完成的辅助功能。

对于教育管理者和大部分师生来说,现代教育技术体现在多样化的教学设备、多媒体化的信息资源、个性化的学习系统、网络化的信息渠道等这些与用户直接接触的人机交互前台应用上。隐藏于后台的信息支撑平台,不为人知,更不被普通用户关心,一直在默默无闻、稳定高效、安全可靠地为这些前台应用提供数据存储、信息处理、流程控制等各方面的支持,是现代教育技术的精髓和灵魂。

常见的现代教育技术信息支撑平台,有侧重资源整合分享的教学课件/资源库系统,侧重教学一体化的网络远程教育系统,侧重教学全过程支持的网络教学平台,侧重教学管理的教务/教学管理系统,侧重学校—家庭协同的家校交流系统等。这些系统或平台,其软件架构通常分为四层,如右图1所示:

图1 软件架构图

在上述软件架构中,每层都有优秀的开源软件可供选择。此外,Linux等操作系统对硬件的性能要求较低,可以在一定程度上延长服务器硬件设施的更新周期,从而减少硬件成本。开源软件相对于传统商业软件,还具有安全、稳定、灵活、开放和不依赖软件提供商等优势。开源软件崇尚的共享、开放、协作、自由、反垄断精神一定程度上体现了教育机构的价值观,因此它格外受到各国教育机构的重视。我国的教育机构[4],尤其是处于研发前沿的各高等院校,使用开源软件的比例也非常高[5]。其中利用LAMP架构(即Linux操作系统+Apache Web服务器+MySQL数据库+PHP脚本语言)架设的网站系统应用最为广泛,这一点与国外类似机构对于开源软件的选择是相同的。下面,笔者就逐一介绍一下在信息化平台架设的各个层面可供选择的开源软件。

(一)操作系统

操作系统是软件与硬件沟通的桥梁,也是开源软件开发与应用的鼻祖,目前主流的开源软件为Linux,被广泛应用于包括教育领域在内的多个领域之中,是稳定可靠、运行高效的操作系统代表。通常我们所提到的Linux[6],是指由Linux内核、Shell程序、GNU工具、函数库、编译器及工具、X-Window系统等共同组成的类Unix操作系统。这样的发行版,有近百种,是由一些公司或组织基于Linux内核、大量的GNU软件及其他开源软件构建的操作系统。

提供收费技术支持服务的发行版有Red Hat企业版与SuSE企业版,前者在全球有庞大的用户群,后者在欧洲和北美取得了相当的市场份额,它们适合应用在对稳定性、兼容性有至高要求的场合。CentOS来自于Red Hat企业版本源代码的重新编译,是与Red Hat企业版二进制兼容的免费发行版本,对于不需要技术支持的用户是个不错的选择。完全的非商业发行版则首推Debian GNU/Linux,它可以说是自由软件运动最理想的形式。全世界成百上千的志愿开发人员为这个项目做出贡献,而项目的严谨管理保证了Debian极佳的质量。我国曾经在市场上推出过红旗Linux,但是最终并没有占领市场,红旗公司也在2013年底宣布倒闭,这是国产操作系统的一大悲剧。

(二) 网络/安全设施

网络/安全设施一般提供包过滤防火墙、负载均衡等网络相关服务。网络安全设施对于网络的应用具有极其重要的作用,许多高校及机构往往采购专用硬件设备来搭建。但对于中小学校来说,硬件防火墙设备过于昂贵,同时,学校对于网络的安全性需求并没有高校等机构大,用硬件防火墙过于“奢侈”。在这种情况下,基于开源软件的防火墙无疑提供了一种很好的选择。

包过滤防火墙可以选择Linux或BSD系统配置相应的Iptables或Packet Filter规则搭建,也可以直接采用专为防火墙定制的M0n0wall、pfSense或SmoothWall等系统。这些系统对于软硬件系统的要求都不高,能够满足学校应用的一般性需求。

负载均衡方面,可以选择通用的负载均衡器LVS[7]或专注于HTTP负载均衡的Nginx。LVS即Linux Virtual Server,由章文嵩博士发起,是中国人对开源软件界贡献的著名项目之一。LVS使用Linux操作系统实现一个高性能、高可用的服务器群集,具有良好可靠性、可扩展性和可操作性,能以低廉的成本实现最优的服务性能,应用在很多超大流量和负载的系统中。Nginx是一个高性能的HTTP和反向代理服务器,是由俄罗斯程序员Igor Sysoev开发,并以类BSD许可证的形式公开源码。Nginx因为它的高性能、高稳定性、丰富的功能和低系统资源的消耗而闻名,全球超过10%的网站[8]在使用Nginx。

(三) 数据库管理系统

数据库管理系统的重要程度不言而喻,它的性能、稳定性、可扩展性对提供给最终用户的系统整体表现影响非常大。MySQL[9](属于Oracle甲骨文公司)和PostgreSQL是开源领域著名的数据库管理系统,被广泛应用在从小的网站系统到大规模的分布式系统。PostgreSQL以类MIT许可证发布;而MySQL的版权有些特别,它和相关的客户库函数同时以GPL许可证和商业许可证发布,对于开发者有些不便,某些情况下需要向Oracle甲骨文公司购买商业版权,给用户提供了多种选择。同时,由于Oracle公司对MySQL提供技术保障,使得即使是免费的MySQL也能得到很好的服务支持和保障,有效避免了开源软件的一大弊端。

MySQL简单易用速度快,标榜是世界上最普遍的开源数据库管理系统;而PostgreSQL符合标准功能更强大,被称为免费的Oracle商业数据库,标榜是世界上最高级的开源数据库管理系统。Web网站类应用,对数据的操作比较简单,可以选择MySQL数据库管理系统。复杂逻辑的信息化类应用,对数据的完整性、一致性、复杂SQL支持等要求较多的情况下,可以选择PostgreSQL数据库管理系统。

(四) Web/应用服务器

开源领域最有名的Web/应用服务器是Apache软件基金会开发的HTTP Server和Tomcat,前者是Web服务器,主要用来提供HTTP协议的处理和响应,后者是应用服务器,侧重于处理应用逻辑(如Java Servlet和JavaServer Pages的处理)。Red Hat公司的JBOSS也是著名的开源应用服务器。他们能满足功能的需求,但在高并发的情况下性能有一定的劣势。对于并发数很高的Web服务,可以使用Nginx这类支持高并发的服务软件,或者在主服务器前增加反向代理服务器或缓存服务器,以尽量减少对主服务器的连接数压力。

(五) 开发环境

开源软件提供丰富的开发语言支持,常见的开发语言如C、C++、python、PHP、Java、Perl、Tcl等均具有相应的软件支持,提供从字符界面到图形IDE界面应尽有的开发环境,提供版本管理、代码索引、调试、测试等多种辅助工作工具。需要重点介绍的是,在系统开发、运维过程中有一款经常被忽略,但非常重要的版本管理软件Git。Git是用于Linux内核开发的版本控制工具,它采用了分布式版本库的方式,使源代码的发布和交流极其方便。Git分支更快、更容易;支持离线工作,本地提交可以稍后提交到服务器上;提交是原子的,且是整个项目范围的;其中的每个工作树都包含一个具有完整项目历史的仓库。Git最为出色的是它的合并跟踪(Merge Tracing)能力,该工具对于开发调试的支持非常出色,是Linux环境下开发的重要支撑工具之一。

(六) 中间件

中间件技术建立在对应用软件部分常用功能的抽象上,将常用且重要的过程调用、分布式组件、消息队列、事务、安全、连结器、商业流程、网络并发、HTTP服务器、Web Service等功能集于一身或者分别在不同品牌的不同产品中分别完成。开源领域已经有很多经过验证的中间件软件,在系统的建设过程中,充分使用这些软件能避免“重复发明轮子”的错误,并可以起到事半功倍的效果。较为常用的开源中间件工具主要有三种,分别是:

(1)Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的Hashmap。其守护进程(Daemon)是用C写的,但是客户端可以用任何语言来编写,并通过Memcached协议与守护进程通信。

(2)redis是一个Key-value存储系统。和Memcached类似,它支持存储的Value类型相对更多,包括String(字符串)、List(链表)、Set(集合)和Zset(有序集合)。这些数据类型都支持Push/Pop、Add/Remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。与Memcached一样,为了保证效率,数据都是缓存在内存中。区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了Masterslave(主从)同步。

(3)Gearman是一个用来把工作委派给其他机器、分布式调用更适合做某项工作的机器、在多个调用间做负载均衡并发做某项工作或用来在调用其它语言的函数的系统。一个Gearman请求的处理过程涉及三个角色:Client→Job→Worker。Client是请求的发起者,可以是C、PHP、Perl、MySQL UDF等。Job是请求的调度者,用来负责协调把Client发出的请求转发给合适的Work。Worker是请求的处理者,可以是C、PHP、Perl等等。因为Client、Worker并不限制用一样的语言,所以有利于多语言多系统之间的集成。通过增加更多的Worker,可以很方便地实现应用程序的分布式负载均衡架构。

(七) 应用程序

以上更多从开发者层面介绍了较为常用的开源软件,对于小规模的应用开发大有裨益。然而对于学校应用而言,更多地是直接从开发社区中获取开源项目的成果加以应用。常用的应用层开源软件有:

(1)网站建设。开源CMS(Content Management System,即内容管理系统)是网站建设的重要应用之一,较为有名的有Joomla、Drupal等。这些软件提供了内容管理、调查、RSS聚合、网站链接、通讯录等常用组件。除了核心系统外,还可以采用模块化、组件和模板方式定制网站,根据用户需求导入其他组件(如网站分类检索组件)、模块(如留言板模块)和模板,扩充网站功能。使用内容管理系统创建信息发布网站,再通过模块定制新增Blog、Wiki、留言板等,最后选择合适的模板就完成了站点的设计。

(2)课程管理系统。Moodle是广为人知的课程管理系统,在国内得到了广泛的研究和普及。其依据社会建构主义的教学思想构建,即教育者(老师)和学习者(学生)都是平等的主体,在教学活动中,他们相互协作,并根据自己已有的经验共同建构知识。Moodle包含课程管理、作业管理、聊天、投票、论坛、测验、资源、互动评价等多个功能模块。通过Moodle可以建立完善的用户管理、功能强大、安全性高的课程管理系统,适合教师与学生开展网络教学和教学研究。

(3)Blog应用。Blog可以基于WordPress构建,其特点是安装和使用最简单、Web标准支持非常好、主题与插件丰富、可生成静态页、防垃圾、支持TAG和支持针对某些其他Blog软件、平台的导入导出功能。WordPress多用户功能可以建立专业的教师Blog,便于教师和学生进行知识积累、共享和交流。

此外,还有应用于学科知识库的Mediawiki等,这里不再做过多介绍。

(八) 管理监控

信息系统运行过程中,不可避免会出现各种故障和异常,影响用户的正常使用,需要管理员介入处理。为减少对用户使用的不良影响,需要对系统的各类运行状况进行监控,在故障出现后甚至在故障表现出来之前,给管理员提供相关的信息,以便快速定位和处理故障或隐患。

常见开源系统管理和监控软件的侧重点各不相同,有侧重网络流量的MRTG、Cacti,有侧重系统监测和网络监视的Collectd、Zabbix、Ganglia,有侧重主机和服务监视的Nagios,有侧重网络设备配置信息监视的RANCID,有侧重系统数据完整性监视的Tripwire。

合理的部署这些软件组合,可以完成对信息支撑平台各个层面多方位的运行状况的监视和异常报告,保证系统稳定高效地运行。

三、开源软件在某校精品课程建设平台中的应用

自教育部启动精品课程建设工程后, 国内各学校都相继展开了本校的精品课程建设工作, 精品课程网站如雨后春笋般出现。但现有大多数学校的信息化建设投入非常有限,在这种情况下, 笔者提出了基于开源软件建设的精品课程平台的建设思路。平台在总体设计、系统构建和技术实现时尽可能采用开源软件。该技术路线在某校的精品课程平台的实际应用中效果良好。

某校的精品课程平台整体部署在CentOS Linux环境下,运维及开发架构采用JSP+ JavaBean+ Servle模式, 在这种模式中, 由Servlet来执行业务逻辑并负责程序的流程控制, JavaBean组件实现业务逻辑, 充当着模型的角色, JSP用于页面的显示。同时该模式具有平台无关性、运行效率高、重用性好、易于便于维护等特点。Web与中间件服务器选用了Tomcat这一开源软件, 其运行稳定、可靠、效益高, 支持JSP和Servlet。数据库系统选用开源的MySQL。为保证系统的安全性,采用了CentOS+IPtables软防火墙的方式将内外网络进行分隔。经过采用开源软件部署和实现后的精品课程平台层次任务划分明确、扩展性好、安全性高和便于系统维护的优势, 数据库、Web层、业务层和客户层既独立而又有机联系。其具体部署如图2所示。

图2 某校精品课程平台部署示意图

目前该校通过此平台共发布了20余门门精品课程。每一门课程有教师队伍介绍、课程信息、电子教案、教学课件、教学视频、网上作业等资源。平台上线运行了后取得了良好的教学效果和社会效益。

[1]赵国栋,黄永中.开源软件在高校的应用与推广策略研究[J].中国远程教育(综合版),2007,(1):62-67.

[2]Free Software Foundation.Various Licenses and Comments about Them [DB/OL]. http://www.gnu.org/licenses/license-list.html,2014-02-22.

[3]张平,马骁.开源软件对知识产权制度的批判与兼容(二)——开源软件许可证的比较研究[J].科技与法律, 2004,(2):46-58.

[4]刘佐达.开源软件中国调查揭晓三大结果高校应用态度最为开放[J].中国教育网络,2007,(1):38.

[5]祝智庭.现代教育技术:信息化教育[M].北京:高等教育出版社,2002.

[6]维基百科.Linux[DB/OL]. http://zh.wikipedia.org/wiki/Linux,2014-02-22.

[7]章文嵩.The Linux Virtual Server Project[DB/OL].http://www.linuxvirtualserver.org/,2014-02-22.

[8]Netcraft.April 2012 Web Server Survery[DB/OL]. http://news.netcraft.com/archives/2012/04/04/april-2012-web-server-survey.html,2014-02-22.

[9]WikiVS.MySQL vs PostgreSQL [DB/OL]. http://www.wikivs.com/wiki/MySQL_vs_PostgreSQL, 2014-02-22.

崔巍峰:中级教师,研究方向为教育信息化建设及农村基础教育信息化(28747113@qq.com)。

2014年1月15日

责任编辑:马小强

The Selection and Application of Open Source Software in the Education Information Support Platform

Cui Weifeng
(Electronic Education Department of Shanxi Province,Taiyuan Shanxi 030027)

In 2013, the idea of "open" "sharing" with online education represented by MOOCs boom become the focus of researchers and practitioners again. The open boom of resources and the application, in fact, as early as the era of MIT "open courseware plan"has been put forward, followed by "open education resources" (OERs) movement got popularized worldwide. This paper reviews the development of open source software, combined with the present status of primary and middle school information technology application, analyzes the selection of open source software in the different segments and discusses the open source software application scenarios and selection suggestions in the construction of the modern education technology information support platform in order to promote the level of information technology application in the primary and secondary schools with low cost and high efficient.

the Open Source Software; the Modern Education Technology; the Information Platform

G434

A

1006—9860(2014)06—0075—05

猜你喜欢

源代码精品课程开源
基于TXL的源代码插桩技术研究
五毛钱能买多少头牛
2019开源杰出贡献奖
基于语法和语义结合的源代码精确搜索方法
党校精品课程建设研究
——以南宁市委党校精品课程建设为例
高校精品课程教学录像制作技术的研究
解密别克安全“源代码”
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
高职院校网络精品课程的建设与管理探索