呂太之,張子恒(江蘇海事職業(yè)技術(shù)學(xué)院 信息工程學(xué)院,南京 211170)
基于云存儲(chǔ)的教學(xué)資源共享平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)
呂太之,張子恒
(江蘇海事職業(yè)技術(shù)學(xué)院 信息工程學(xué)院,南京 211170)
云存儲(chǔ)技術(shù)基于低成本、高效率等優(yōu)勢(shì)已得到了廣泛的應(yīng)用。將云存儲(chǔ)技術(shù)應(yīng)用到高職院校教學(xué)中,能夠有效地促進(jìn)學(xué)生自主學(xué)習(xí)?;诮K海事職業(yè)技術(shù)學(xué)院教學(xué)資源管理的現(xiàn)狀,設(shè)計(jì)并實(shí)現(xiàn)了基于私有云的云存儲(chǔ)系統(tǒng),實(shí)現(xiàn)了教學(xué)資源的信息化管理和共享。私有云平臺(tái)基于OpenStack開(kāi)源框架搭建而成,提供了Web和Android客戶(hù)端兩種訪(fǎng)問(wèn)方式。系統(tǒng)開(kāi)發(fā)采用MVC模式,Web服務(wù)器開(kāi)發(fā)通過(guò)Spring4+Hibernate實(shí)現(xiàn)MVC模式。
云存儲(chǔ);OpenStack;Android;MVC
云計(jì)算技術(shù)是大型機(jī)到CS(Client Server客戶(hù)端-服務(wù)器)模式,再到BS(Browser Server瀏覽器-服務(wù)器)模式巨變之后的IT領(lǐng)域的又一次革命性的創(chuàng)新[1]。智慧國(guó)家、智慧城市、智慧校園的建設(shè)都離不開(kāi)“云”[2]。
在學(xué)習(xí)和生活中經(jīng)常會(huì)用到百度、網(wǎng)易等云盤(pán)系統(tǒng),而這些云盤(pán)無(wú)疑給學(xué)習(xí)和生活帶來(lái)了很大的便利。但是這些公共云盤(pán)只適合存儲(chǔ)個(gè)人信息,并不適合教育資源的共享和使用。江蘇海事職業(yè)技術(shù)學(xué)院數(shù)字化校園建設(shè)已開(kāi)展多年,但是由于各種原因,到目前為止還沒(méi)有構(gòu)建一個(gè)類(lèi)似百度云盤(pán)的私有云存儲(chǔ)平臺(tái)。當(dāng)教師和學(xué)生需要共享數(shù)字信息和教學(xué)資料,需要傳送文件時(shí),只能使用移動(dòng)存儲(chǔ)設(shè)備、FTP、郵件等方式。云存儲(chǔ)的教學(xué)資源共享平臺(tái)是基于此背景而開(kāi)發(fā)的,是江蘇海事職業(yè)技術(shù)學(xué)院“互聯(lián)網(wǎng)+時(shí)代下數(shù)字化校園建設(shè)”項(xiàng)目的子課題,為學(xué)院內(nèi)部師生共享教學(xué)資源提供了一種解決方案。
1.1功能需求
當(dāng)前的功能需求將云存儲(chǔ)平臺(tái)用戶(hù)分為普通用戶(hù)和管理員用戶(hù)。管理員用戶(hù)主要實(shí)現(xiàn)日志管理、參數(shù)設(shè)置、用戶(hù)管理等功能。普通用戶(hù)主要有個(gè)人用戶(hù)管理和存儲(chǔ)管理兩個(gè)功能模塊。根據(jù)推廣使用的反饋,系統(tǒng)將會(huì)提供更多級(jí)別的用戶(hù)和功能。當(dāng)前功能需求如圖1所示。
圖1 云存儲(chǔ)平臺(tái)用例圖
1.2其他需求
對(duì)于UI(User Interface用戶(hù)界面)要求,云存儲(chǔ)平臺(tái)將參照江蘇海事職業(yè)技術(shù)學(xué)院校園信息門(mén)戶(hù)網(wǎng)站的布局和色調(diào)。安全性方面要求用戶(hù)的存儲(chǔ)空間是私密的,未經(jīng)授權(quán)的訪(fǎng)問(wèn)都是無(wú)效的,即使管理員也無(wú)法獲取任何用戶(hù)的存儲(chǔ)信息,同時(shí)要防止用戶(hù)短時(shí)間內(nèi)多次操作等。性能需求要滿(mǎn)足1 000人同時(shí)在線(xiàn)操作,大部分的操作控制在5秒以?xún)?nèi)。
2.1技術(shù)架構(gòu)
云存儲(chǔ)平臺(tái)技術(shù)架構(gòu)如圖2所示。
圖2 技術(shù)架構(gòu)圖
Bootstrap是一款前端框架,基于Html、CSS和JavaScript,比傳統(tǒng)前端框架更加靈活,使得Web客戶(hù)端開(kāi)發(fā)更加快捷。JQuery是一個(gè)兼容性良好的輕量級(jí)JavaScript庫(kù)[3]。volley是Android一款網(wǎng)絡(luò)操作開(kāi)源框架,簡(jiǎn)化了網(wǎng)絡(luò)操作。XUtils框架類(lèi)似于Java開(kāi)發(fā)中的Hibernate框架,是Android中的ORM(Object Relation Mapping時(shí)態(tài)關(guān)系映射)框架,簡(jiǎn)化了對(duì)數(shù)據(jù)庫(kù)的操作[4]。ThinkAndroid是一款A(yù)ndroid實(shí)現(xiàn)MVC的開(kāi)源框架。Spring是一款輕量級(jí)的開(kāi)源框架,云盤(pán)平臺(tái)使用該框架完成Restful Web Service和MVC框架,通過(guò)Hibernate簡(jiǎn)化數(shù)據(jù)庫(kù)操作[5]。MySQL是Oracle旗下的一款關(guān)系型DBMS(Database Management System數(shù)據(jù)庫(kù)管理系統(tǒng)),分為社區(qū)版和商業(yè)版。云存儲(chǔ)平臺(tái)使用的是社區(qū)版,降低了開(kāi)發(fā)和運(yùn)行成本[6]。Restful服務(wù)接口(Restful Web service Interface)是一種運(yùn)用與客戶(hù)端和服務(wù)器交互的軟件架構(gòu)方式[7]。OpenStack是一款開(kāi)源云計(jì)算平臺(tái),由若干組件合作完成相關(guān)工作[8]。PaaS(Platform-as-a-Service),即平臺(tái)即服務(wù)。IaaS(Infrastructure as a Service),即基礎(chǔ)設(shè)施即服務(wù)。Swift開(kāi)源項(xiàng)目提供了高可用性的分布式對(duì)象存儲(chǔ)服務(wù)。
2.2功能設(shè)計(jì)
云存儲(chǔ)平臺(tái)為普通用戶(hù)使用提供的基本功能包括新建文件夾、上傳文件、下載、刪除、重命名、復(fù)制、移動(dòng)、搜索、登錄、注冊(cè)、注銷(xiāo)、分享等。普通用戶(hù)的系統(tǒng)功能模塊如圖3所示。
圖3 普通用戶(hù)功能模塊圖
3.1OpenStack平臺(tái)的搭建
云存儲(chǔ)平臺(tái)的搭建采用源代碼安裝的方式,源代碼來(lái)自GitHub開(kāi)源網(wǎng)站。受資金限制,云存儲(chǔ)平臺(tái)的所有服務(wù)部署在一臺(tái)浪潮服務(wù)器上,即采用了All-in-one的方式。平臺(tái)搭建包括了操作系統(tǒng)安裝、網(wǎng)絡(luò)配置、Keystone、Swift等服務(wù)的安裝。平臺(tái)安裝過(guò)程中遇到了很多問(wèn)題,如網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的設(shè)計(jì),環(huán)境變量的設(shè)置,Keystone數(shù)據(jù)庫(kù)配置等問(wèn)題。
3.2OpenStack API調(diào)用
通過(guò)HTTP的Restful服務(wù)接口調(diào)用Open-Stack Swift服務(wù),實(shí)現(xiàn)對(duì)賬號(hào)、容器和對(duì)象的增刪改查等操作。在訪(fǎng)問(wèn)之前,首先需要通過(guò)Keystone認(rèn)證服務(wù)器獲取訪(fǎng)問(wèn)令牌,然后在請(qǐng)求頭加入X-Auth-Token信息。由于通過(guò)Restful服務(wù)接口調(diào)用Swift服務(wù)器方式繁瑣,并且容易出錯(cuò),云存儲(chǔ)系統(tǒng)開(kāi)發(fā)中使用了JOSS(Java OpenStack storage component)開(kāi)源工具包來(lái)調(diào)用Restful服務(wù)接口,簡(jiǎn)化了開(kāi)發(fā)工作。
3.3用戶(hù)映射
云存儲(chǔ)平臺(tái)通過(guò)Keystone服務(wù)完成Swift的身份驗(yàn)證。Web服務(wù)器連接到Swift服務(wù)器需要在Keystone中使用Keystone用戶(hù)名和密碼。將云存儲(chǔ)平臺(tái)客戶(hù)登錄名稱(chēng)和Keystone的租戶(hù)關(guān)聯(lián)起來(lái),通過(guò)該租戶(hù)信息獲取Swift服務(wù)的容器信息。為了簡(jiǎn)化操作,云存儲(chǔ)平臺(tái)的登錄名即Keystone的租戶(hù)名,新用戶(hù)注冊(cè)的同時(shí)會(huì)在Keystone服務(wù)器上創(chuàng)建一個(gè)租戶(hù),Keystone創(chuàng)建成功以后才提示用戶(hù)注冊(cè)成功,并將租戶(hù)ID更新到云存儲(chǔ)平臺(tái)數(shù)據(jù)庫(kù)。云存儲(chǔ)平臺(tái)用戶(hù)信息表主要包括用戶(hù)ID、登錄名稱(chēng)(租戶(hù)名稱(chēng))、真實(shí)姓名、用戶(hù)郵箱、最后訪(fǎng)問(wèn)日期、容量、角色I(xiàn)D等信息。
3.4頁(yè)面美化
為了與學(xué)院信息門(mén)戶(hù)的界面風(fēng)格一致,同時(shí)減輕瀏覽器負(fù)荷,提高運(yùn)行效率,提升用戶(hù)體驗(yàn)水平,在頁(yè)面的渲染方面,使用了JQuery,JavaScript等腳本,并且運(yùn)用Ajax技術(shù),刷新局部頁(yè)面模塊來(lái)顯示信息,從而讓用戶(hù)感受到更快的響應(yīng)速度,降低了系統(tǒng)崩潰的概率[9]。云存儲(chǔ)平臺(tái)也使用Flat UI工具包來(lái)美化界面。
云計(jì)算作為一種新的資源使用方式,已得到了廣泛的應(yīng)用。本文基于OpenStack搭建了一個(gè)供學(xué)院內(nèi)部教學(xué)資源管理和共享的私有云存儲(chǔ)平臺(tái),通過(guò)開(kāi)源框架完成了OpenStack API的調(diào)用。開(kāi)發(fā)過(guò)程中使用了MVC模式,提高了開(kāi)發(fā)效率,使得系統(tǒng)易于擴(kuò)展。通過(guò)Ajax、JQuery、Bootstrap Flat-UI等技術(shù)美化了頁(yè)面,改進(jìn)了用戶(hù)體驗(yàn)。但是已實(shí)現(xiàn)的基于云存儲(chǔ)的教學(xué)資源共享平臺(tái)還存在不足,仍需要進(jìn)一步改進(jìn)。雖然數(shù)據(jù)庫(kù)設(shè)計(jì)中已經(jīng)考慮到權(quán)限的問(wèn)題,但是平臺(tái)對(duì)于用戶(hù)的空間大小和權(quán)限還沒(méi)有實(shí)現(xiàn),同時(shí)也沒(méi)有提供IOS和Window Mobile兩個(gè)移動(dòng)平臺(tái)。
[1]何清.大數(shù)據(jù)與云計(jì)算[J].科技促進(jìn)發(fā)展,2014(1):35-40.
[2]胡欽太,鄭凱,林南暉.教育信息化的發(fā)展轉(zhuǎn)型:從“數(shù)字校園”到“智慧校園”[J].中國(guó)電化教育,2014(1):35-39.
[3]潘杰,周傳生.基于jQuery框架的Web研究與實(shí)現(xiàn)[J].沈陽(yáng)師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2015,33(1):96-99.
[4]孟遠(yuǎn).Android網(wǎng)絡(luò)通信框架Volley的解析和比較[J].軟件,2014(12):66-68.
[5]韓曉霞,梁曉輝,李彩霞.基于MVC模式的銷(xiāo)售管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].河北軟件職業(yè)技術(shù)學(xué)院學(xué)報(bào),2013 (1):58-60.
[6]張曉孿.基于MySQL的小型數(shù)據(jù)庫(kù)管理工具實(shí)現(xiàn)[J].微處理機(jī),2015(2):48-52.
[7]李凱凱.基于REST的云存儲(chǔ)服務(wù)接口的研究與實(shí)現(xiàn)[D].武漢:武漢理工大學(xué),2014.
[8]孫寒玉,顧春華,萬(wàn)鋒,等.一種基于OpenStack的云應(yīng)用開(kāi)發(fā)框架[J].華東理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2015,41(2):272-276.
[8]王亞楠,吳華瑞,黃鋒.高并發(fā)Web應(yīng)用系統(tǒng)的性能優(yōu)化分析與研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2014(8):2976-2980.
Development and Realization of Teach Resource Management System Based on Cloud Storage Technology
LV Tai-zhi,ZHANG Zi-heng
(Jiangsu Maritime Institute,School of Information Technology,Nanjing 211170,China)
Cloud storage technology has been widely applied for its low cost,high efficiency and other advantages. Applying the cloud storage technology in the teaching of high vocation institute can promote students'autonomous learning.The cloud storage platform is designed and implemented based on the teach resources management situation of Jiangsu Maritime Institute.This platform can implement the management and sharing of teaching resources.This platform is implemented by OpenStack,and provides two methods to access,including Web and Android Application. Its development uses MVC pattern,and MVC pattern of Web application is implemented by Spring4+Hibernate.
Cloud Computing;Cloud Storage;OpenStack;Android;MVC;Swift
TP312
A
1673-2022(2016)03-0040-03
2016-06-13
第二屆江蘇省高校中青年骨干教師和校長(zhǎng)境外研修項(xiàng)目(201121);江蘇海事職業(yè)技術(shù)學(xué)院千帆團(tuán)隊(duì)建設(shè)項(xiàng)目(20156001)
呂太之(1979-),男,江蘇南京人,高級(jí)工程師,研究方向?yàn)槁殬I(yè)教育、云計(jì)算及人工智能;張子恒(1994-),男,江蘇南京人,程序員,研發(fā)方向?yàn)檐浖_(kāi)發(fā)和云計(jì)算。
河北軟件職業(yè)技術(shù)學(xué)院學(xué)報(bào)2016年3期