柳海燕
摘 要:隨著移動互聯(lián)網(wǎng)、云計(jì)算、智能設(shè)備和移動設(shè)備的普及,移動學(xué)習(xí)受到廣泛關(guān)注。本文以《數(shù)據(jù)庫原理與設(shè)計(jì)》課程為例,設(shè)計(jì)并實(shí)現(xiàn)了基于云存儲的移動自主學(xué)習(xí)平臺。該平臺不但解決了大量音視頻文件的安全、高效和低價(jià)存儲問題,而且可以使學(xué)習(xí)者隨時(shí)隨地獲取自己想要的知識信息,從而實(shí)現(xiàn)真正意義上的自主學(xué)習(xí)。該平臺已經(jīng)成為傳統(tǒng)課堂教學(xué)的重要輔助工具。
關(guān)鍵詞:云存儲;互聯(lián)網(wǎng)+;移動互聯(lián)網(wǎng);自主學(xué)習(xí)
中圖分類號:TP393 文獻(xiàn)標(biāo)志碼:B 文章編號:1673-8454(2017)13-0094-04
一、引言
《國家中長期教育改革和發(fā)展規(guī)劃綱要(2010-2020年)》[1]指出,要“加快解決經(jīng)濟(jì)社會發(fā)展對高質(zhì)量多樣化人才需要與教育培養(yǎng)能力不足的矛盾、人民群眾期盼良好教育與資源相對短缺的矛盾”。因此,各高校需要緊跟當(dāng)前科技發(fā)展的步伐,依據(jù)當(dāng)前學(xué)生學(xué)習(xí)的特點(diǎn),不斷變革教學(xué)手段與加強(qiáng)教學(xué)資源平臺建設(shè)。
移動互聯(lián)網(wǎng),就是將移動通信和互聯(lián)網(wǎng)二者結(jié)合起來,成為一體。伴隨著移動終端價(jià)格的下降、WIFI的廣泛鋪設(shè)以及4G時(shí)代的開啟,移動網(wǎng)民呈現(xiàn)爆發(fā)式增長趨勢。當(dāng)前很多企業(yè)正在對大數(shù)據(jù)如何在各個(gè)行業(yè)應(yīng)用積極探索,這些都使得通過移動教育為用戶提供學(xué)習(xí)方案成為可能,即移動學(xué)習(xí)應(yīng)運(yùn)而生。移動學(xué)習(xí)[2]不受時(shí)間和空間限制,可以隨時(shí)隨地進(jìn)行學(xué)習(xí),有著傳統(tǒng)教學(xué)無法比擬的優(yōu)點(diǎn),必將在高校教學(xué)教改中發(fā)揮巨大作用。
本文結(jié)合近年來穩(wěn)居市場占有率第一的Android平臺,基于百度云存儲BOS服務(wù),以《數(shù)據(jù)庫原理與設(shè)計(jì)》課程為例,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)自主學(xué)習(xí)平臺。該平臺不僅有效解決了大量音頻、視頻等教學(xué)資源的海量存儲問題,還可以方便學(xué)生隨時(shí)隨地學(xué)習(xí)。該平臺可以有效提高學(xué)生自主學(xué)習(xí)的積極性與效果,成為提高教學(xué)質(zhì)量和教學(xué)效果的重要手段之一。
二、移動自主學(xué)習(xí)平臺的分析與設(shè)計(jì)
1.移動操作系統(tǒng)Android
Android是Google推出的基于Linux的開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,如智能手機(jī)和平板電腦。根據(jù)市場研究公司Strategy Analytics公布的2016年第三季度全球手機(jī)市場的操作系統(tǒng)份額占比情況,在這一統(tǒng)計(jì)周期中(6至9月),全球Android手機(jī)的市場份額上升至87.5%,而蘋果的iOS系統(tǒng)則跌至12.1%。Android平臺目前擁有眾多硬件產(chǎn)品,隨著Google對于Android的不斷優(yōu)化完善和這些硬件企業(yè)強(qiáng)大的創(chuàng)新能力,Android平臺正生機(jī)勃勃的成長著。
Android 系統(tǒng)以其平臺的開放性、終端的高性價(jià)比吸引著越來越多的開發(fā)者和用戶,因此,本文將在Android環(huán)境下開發(fā)移動自主學(xué)習(xí)平臺。
2.數(shù)據(jù)庫原理與設(shè)計(jì)課程分析
數(shù)據(jù)庫原理與設(shè)計(jì)的課程內(nèi)容較為抽象和晦澀,學(xué)生理解和掌握有一定的難度。因此,為數(shù)據(jù)庫原理與設(shè)計(jì)課程專門開發(fā)移動自主學(xué)習(xí)平臺來輔助學(xué)生學(xué)習(xí),可以高效的利用學(xué)生的碎片化時(shí)間,有效提高學(xué)生學(xué)習(xí)的積極性和效率。
3.平臺架構(gòu)設(shè)計(jì)
由于本平臺涉及到大量供學(xué)生訪問學(xué)習(xí)的音頻、視頻文件,為保證其存儲的安全性及訪問性能,我們借助云端服務(wù)整合資源,實(shí)現(xiàn)視頻資源的云存儲。
經(jīng)過對用戶及其功能和性能的需求分析,基于云存儲的移動自主學(xué)習(xí)平臺,主要有三種類型的用戶角色,分別是管理員、教師和學(xué)生。平臺總體架構(gòu)如圖1 所示。
在本平臺中,由云存儲負(fù)責(zé)存儲音頻、視頻等大型文件,由普通數(shù)據(jù)庫服務(wù)器負(fù)責(zé)存儲文本文件。學(xué)生使用Android客戶端通過無線網(wǎng)絡(luò)進(jìn)行課程資源的訪問與使用,教師使用PC中的瀏覽器進(jìn)行移動自主學(xué)習(xí)平臺的課程資源管理與建設(shè),管理員使用PC中的瀏覽器管理教師和學(xué)生。
4.功能模塊設(shè)計(jì)
在設(shè)計(jì)了上述的平臺架構(gòu)之后,就可以根據(jù)平臺架構(gòu)設(shè)計(jì)移動自主學(xué)習(xí)平臺的功能模塊??傮w來說,平臺分為管理員模塊、教師模塊和學(xué)生模塊,這三個(gè)模塊的具體功能如圖2所示。
三、移動自主學(xué)習(xí)平臺的實(shí)現(xiàn)
本平臺在開發(fā)過程中,主要用到以下開發(fā)工具和關(guān)鍵技術(shù)。
1.開發(fā)工具
(1)Eclipse
本平臺采用Eclipse開發(fā)服務(wù)端網(wǎng)站,供管理員和教師訪問。Eclipse 是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺。
(2)MySQL
考慮到運(yùn)營成本,本平臺只用云存儲來進(jìn)行音頻、視頻等大型文件的管理,一般的文本文檔采用MySQL數(shù)據(jù)庫進(jìn)行存儲。MySQL體積小、速度快,其開放源碼的特點(diǎn)可以大大降低總體擁有成本,一般中小型網(wǎng)站的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫。
(3)Tomcat
我們采用Tomcat作為基于云存儲的移動自主學(xué)習(xí)平臺服務(wù)端網(wǎng)站的服務(wù)器。因?yàn)門omcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受開發(fā)者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,目前已成為比較流行的Web 應(yīng)用服務(wù)器之一。
(4)Android Studio
本平臺采用Android Studio[3]進(jìn)行移動客戶端的開發(fā),供學(xué)生通過此App隨時(shí)隨地進(jìn)行課程資源的訪問。Android Studio是一款簡單直觀、功能豐富且極具包容性的集成開發(fā)環(huán)境,在開發(fā)Android App方面比Eclipse更加高效易用。Google在2015年底已經(jīng)停止對Eclipse的ADT更新支持,推薦開發(fā)者使用Android官方集成開發(fā)環(huán)境Android Studio。Android Studio有基于Gradle的構(gòu)建支持,有功能更強(qiáng)大的布局編輯器。
(5)Git
本平臺開發(fā)過程中,采用Git[4]進(jìn)行版本管理。Git是一款免費(fèi)、開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項(xiàng)目。
2.關(guān)鍵技術(shù)
(1)BOS
本平臺開發(fā)過程中,采用百度云存儲BOS進(jìn)行音頻、視頻等大型文件的存儲。百度對象存儲BOS(Baidu Object Storage),提供穩(wěn)定、安全、高效、高可擴(kuò)展的云存儲服務(wù),支持最大5TB多媒體、文本、二進(jìn)制等任意類型數(shù)據(jù)的存儲。BOS連續(xù)2年通過可信云認(rèn)證,可以讓我們更放心地存儲關(guān)鍵數(shù)據(jù)。
BOS使用中涉及的核心概念有:
① Object:在BOS中,用戶操作的基本數(shù)據(jù)單元是Object。
② Bucket:Bucket可以理解為命名空間,一個(gè)存儲桶,所有Object都必需存儲在Bucket中。每個(gè)Bucket的名稱在BOS的一個(gè)Region內(nèi)具有唯一性。一個(gè)用戶最多可創(chuàng)建100個(gè)Bucket,但每個(gè)Bucket中存放的Object的數(shù)量和大小總和沒有限制,用戶不需要考慮數(shù)據(jù)的可擴(kuò)展性。
③ Referer白名單:Referer白名單即準(zhǔn)入列表,基于HTTP header referer字段的防盜鏈方法,目的是防止用戶存儲在BOS上的數(shù)據(jù)被其他人盜鏈。用戶可以通過BOS控制臺設(shè)置Referer字段的白名單。設(shè)置白名單后,只有Referer字段在白名單內(nèi)的用戶才可以訪問Bucket中存儲的數(shù)據(jù),不在白名單內(nèi)的請求會被拒絕。但如果用戶的Referer為空,默認(rèn)可以訪問,不受白名單限制。
④ CDN加速:CDN不僅能為包括地圖、圖片、文檔在內(nèi)的靜態(tài)網(wǎng)頁加載進(jìn)行加速,也可為音頻、下載、游戲等業(yè)務(wù)提供加速服務(wù),使網(wǎng)站可被高速訪問,有效提升網(wǎng)站的用戶體驗(yàn)。
(2)HttpURLConnection
本平臺開發(fā)的Andriod客戶端應(yīng)用,需要與服務(wù)器進(jìn)行數(shù)據(jù)交互。本平臺采用使用最廣泛的 HTTP協(xié)議進(jìn)行網(wǎng)絡(luò)訪問。Android開發(fā)中使用HTTP協(xié)議訪問網(wǎng)絡(luò),最常用的兩種方式是HttpURLConnection和HttpClient。
在Android 6.0(API 23)版本的SDK中,已將Apache HttpClient相關(guān)類移除,推薦使用HttpURLConnection。HttpURLConnection對大部分工作進(jìn)行了包裝,屏蔽了不需要的細(xì)節(jié),體積較小,因而非常適用于Android項(xiàng)目。并且HttpURLConnection直接在系統(tǒng)層面做了緩存策略處理,可以加快重復(fù)請求的速度。由于其壓縮(GZip)和緩存機(jī)制可以有效地減少網(wǎng)絡(luò)訪問的流量,在提升速度和省電方面也起到了較大的作用。所以本平臺使用HttpURLConnection進(jìn)行網(wǎng)絡(luò)訪問。
為了訪問網(wǎng)絡(luò),需要在AndroidManifest.xml中添加如下權(quán)限:
在使用過程中,為了實(shí)現(xiàn)回調(diào),我們定義了接口HttpCallbackListener作為網(wǎng)絡(luò)請求返回監(jiān)聽器,該接口包含成功和失敗兩個(gè)回調(diào)方法。具體定義如下:
public interface HttpCallbackListener {
void onFinish(String response);
void onError(Exception e);
}
(3)GridView
在本平臺的客戶端主界面中,為了使界面友好,操作方便,我們設(shè)計(jì)了帶有分割線的GridView九宮格界面。我們把GridView嵌套到ScrollView中,定義了一個(gè)帶分割線的選擇器,具體代碼如下:
<?xml version="1.0" encoding="utf-8"?>
四、移動自主學(xué)習(xí)平臺的功能展示
為了便于在移動端部署應(yīng)用,我們將基于云存儲的移動自主學(xué)習(xí)平臺的Android客戶端命名為“口袋課堂”。“口袋課堂”的登錄界面和主要功能模塊界面,如圖3、圖4所示。
五、結(jié)束語
本文從設(shè)計(jì)開發(fā)的角度詳細(xì)闡述了基于云存儲的移動自主學(xué)習(xí)平臺的設(shè)計(jì)與實(shí)現(xiàn)策略,從而實(shí)現(xiàn)一個(gè)在移動終端上,能讓學(xué)生充分利用零碎時(shí)間自主學(xué)習(xí)的平臺。本文對如何通過信息技術(shù)構(gòu)建移動自主學(xué)習(xí)平臺,從而推動學(xué)習(xí)的終身化,改革教學(xué)手段,有一定的實(shí)用和參考價(jià)值。
參考文獻(xiàn):
[1]中華人民共和國教育部.國家中長期教育改革和發(fā)展規(guī)劃綱要(2010-2020年)[DB/OL].http://www.moe.edu.cn/publicfiles/business/htmlfiles/moe/moe_838/201008/93704.html.
[2]胡通海.移動學(xué)習(xí)的定義、特征和結(jié)構(gòu)[J].軟件導(dǎo)刊,2010,9(7):178-180.
[3]陳承歡.Android移動應(yīng)用開發(fā)任務(wù)驅(qū)動教程Android Studio + Genymot [M].北京:電子工業(yè)出版社,2016.
[4]羅力格,麥克庫羅著.Git版本控制(影印版)(第2版)[M].南京:東南大學(xué)出版社,2013.
(編輯:王曉明)