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