羅耀軍+胡玲+任碩果
【摘 要】本文從OpenStack Swift服務(wù)搭建過程、命令運(yùn)用、應(yīng)用模塊開發(fā)三方面對Android云存儲客戶端應(yīng)用開發(fā)能力培養(yǎng)進(jìn)行教學(xué)設(shè)計(jì),以促使學(xué)生在了解和掌握云存儲服務(wù)OpenStack Swift的搭建和使用的前提下,能夠按移動客戶的需求,開發(fā)移動客戶端應(yīng)用項(xiàng)目。
【關(guān)鍵詞】云存儲 客戶端開發(fā) 能力培養(yǎng) 教學(xué)設(shè)計(jì)
【中圖分類號】G 【文獻(xiàn)標(biāo)識碼】A
【文章編號】0450-9889(2017)04C-0189-03
早在2006年3月,亞馬遜首先提出了彈性計(jì)算云服務(wù),2006年8月9日,谷歌首席執(zhí)行官埃里克·施密特在搜索引擎大會首次提出“云計(jì)算”的概念。OpenStack是一個(gè)由NASA(美國國家航空航天局)和Rackspace合作研發(fā)并發(fā)起的,以Apache許可證授權(quán)的自由軟件和開放源代碼項(xiàng)目。OpenStack支持幾乎所有類型的云環(huán)境,項(xiàng)目目標(biāo)是提供實(shí)施簡單、可大規(guī)模擴(kuò)展、豐富、標(biāo)準(zhǔn)統(tǒng)一的云計(jì)算管理平臺。OpenStack通過各種互補(bǔ)的服務(wù)提供了基礎(chǔ)設(shè)施即服務(wù)(IaaS)的解決方案,每個(gè)服務(wù)提供API以進(jìn)行集成。OpenStack 包含Nova和Swift兩個(gè)主要模塊,前者是NASA開發(fā)的虛擬服務(wù)器部署和業(yè)務(wù)計(jì)算模塊;后者是 Rackspace開發(fā)的分布式云存儲模塊,兩者可以一起用,也可以分開單獨(dú)用。在OpenStack 中,Swift主要用于存儲虛擬機(jī)鏡像,用于Glance的后端存儲。在實(shí)際運(yùn)用中,Swift 的典型運(yùn)用是網(wǎng)盤系統(tǒng),代表是“Dropbox”,存儲類型大多為圖片、郵件、視頻、存儲備份等靜態(tài)資源。OpenStack除有 Rackspace 和 NASA 的大力支持外,還有包括 Dell、Citrix、Cisco、Canonical等重量級公司的貢獻(xiàn)和支持,發(fā)展速度非???,有取代另一個(gè)業(yè)界領(lǐng)先開源云平臺 Eucalyptus 的態(tài)勢?;贠penStack Swift服務(wù),Android 云存儲客戶端應(yīng)用開發(fā)要具備的能力是:在了解和掌握云存儲服務(wù) OpenStack Swift 的搭建和使用的前提下,按移動客戶的需求,開發(fā)移動客戶端應(yīng)用項(xiàng)目。
一、開展OpenStack Swift服務(wù)搭建過程教學(xué),提高學(xué)生操作配置能力
以搭建單節(jié)點(diǎn)的Swift服務(wù)主要供網(wǎng)盤開發(fā)使用為可視化的演示對象,安裝操作系統(tǒng)最小化Centos6.5_x64桌面操作系統(tǒng),配置主機(jī)名等,將提供的壓縮包導(dǎo)入到操作系統(tǒng)內(nèi)。
(一)演示單節(jié)點(diǎn)的Swift服務(wù)搭建過程
教師一邊演示,學(xué)生一邊搭建操作,這是最好的效果。教學(xué)完成以后,學(xué)生再獨(dú)立復(fù)習(xí)鞏固地操作一遍。
(二)提高搭建過程中的配置能力
教師在演示單節(jié)點(diǎn)的Swift服務(wù)搭建過程中,對一些配置會進(jìn)行說明,但還不夠。如果能通過抓屏軟件把服務(wù)搭建過程中的配置說明制作成“可操控的視屏方式”的演示文件,在運(yùn)行中運(yùn)用“暫?!薄袄^續(xù)”按鍵,制作討論式的學(xué)習(xí)配置說明,這樣學(xué)生可以更好地復(fù)習(xí)鞏固Swift服務(wù)搭建過程中的配置說明,提高學(xué)生服務(wù)搭建過程中的配置能力。該視頻文件若能有手機(jī)版,效果會更好,學(xué)生不僅能在教室的電腦上跟隨學(xué)習(xí),還能通過手機(jī)版隨時(shí)隨地地復(fù)習(xí)。
二、開展OpenStack Swift服務(wù)命令使用教學(xué),提高學(xué)生命令運(yùn)用能力
我們知道,API(Application Programming Interface,應(yīng)用程序編程接口)是一些預(yù)先定義的函數(shù),目的是提供應(yīng)用程序與開發(fā)人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內(nèi)部工作機(jī)制的細(xì)節(jié)。Swift通過Proxy Server向外提供基于HTTP的REST服務(wù)接口,對賬戶、容器和對象進(jìn)行CRUD等操作。如何掌握OpenStack Swift服務(wù)命令的運(yùn)用?通過命令的格式、功能、說明、示例的反復(fù)運(yùn)用,能螺旋式的提高學(xué)生運(yùn)用命令的能力。例如Swift upload命令。(1)格式:swift upload [command-options] container file_or_directory [file_or_directory][...];(2)功能:根據(jù)參數(shù)將制定的文件或者目錄上傳到容器內(nèi);(3)參數(shù)說明;[command-options] 選項(xiàng),Container 容器名稱,或者是容器內(nèi)的目錄,file_or_directory 本地文件系統(tǒng)內(nèi)的目錄或者文件,[file_or_directory] 本地文件系統(tǒng)內(nèi)的目錄或者文件,可同時(shí)上傳多個(gè)目錄或文件;(4)示例(略)。通過多示例的參數(shù)描述的運(yùn)用,例學(xué)生撐據(jù)命令格式的靈活運(yùn)用。
三、開展Openstack Swift SDK應(yīng)用模塊教學(xué),提高學(xué)生“項(xiàng)目”開發(fā)能力
Android云存儲客戶端應(yīng)用開發(fā)采用項(xiàng)目模塊化進(jìn)行教學(xué),模塊是“項(xiàng)目式”教學(xué)的最小單元,Android云存儲客戶端應(yīng)用項(xiàng)目中常用的模塊有登錄注冊模塊、文件瀏覽模塊、文件操作模塊等,下面以登錄注冊模塊中的登錄為例進(jìn)行說明。
(一)功能需求
已知已注冊可登錄的賬號用戶名為gw001,密碼是00000。根據(jù)原型圖設(shè)計(jì)實(shí)現(xiàn)登錄窗口View,如圖1所示。
登錄窗口的控制層,如圖2所示。
控制流程的說明:在SDK中,我們知道Keystone服務(wù)負(fù)責(zé)用戶的認(rèn)證和授權(quán),這里調(diào)用Keystone的認(rèn)證,傳遞的參數(shù)為用戶名和密碼。(1)沒有聯(lián)網(wǎng),服務(wù)不能訪問,提示用戶聯(lián)網(wǎng);(2)賬戶和密碼都正確,驗(yàn)證通過,自動登錄,展示網(wǎng)盤主窗口;(3)賬戶不正確,驗(yàn)證不通過,提示用戶重新輸入賬戶和密碼;(4)密碼不正確,驗(yàn)證不通過,提示用戶重新輸入賬戶和密碼;(5)連續(xù)輸入3次不正確,提示用戶找回密碼。通過郵件的方式找回。
(二)界面代碼實(shí)現(xiàn)
1.導(dǎo)入項(xiàng)目。運(yùn)行 Android Studio,選擇 File\Open..,點(diǎn)擊彈出選擇 project64 目錄下面的項(xiàng)目—swiftstorage‖,如圖3 所示。
2.界面代碼實(shí)現(xiàn)。登錄布局包含5個(gè)組件,從上到下依次為:圖標(biāo)(ImageView)、用戶輸入框(EditText)、密碼輸入框(EditText)、登錄按鈕(Button),注冊按鈕(TextView),及最下面一個(gè)進(jìn)度條(ProgressBar)。幾個(gè)組件的說明如表1所示,原始代碼略。此布局的路徑 app\src\main\res\layout\login.xml。
(三)功能執(zhí)行測試
測試的場景(TestCase)包括如下,可以編寫單元測試,或者自己手工測試,場景如表2所示。
經(jīng)過測試,合法用戶能夠正常登錄,非法用戶和輸入被阻止。至此,完成了登錄功能的開發(fā)。
四、結(jié)語
本文為促進(jìn)學(xué)生Android云存儲客戶端應(yīng)用開發(fā)能力培養(yǎng),從Openstack Swift服務(wù)搭建的配置能力、服務(wù)命令的運(yùn)用能力、應(yīng)用模塊的開發(fā)能力進(jìn)行了教學(xué)設(shè)計(jì),系統(tǒng)地闡明了Android云存儲客戶端應(yīng)用開發(fā)能力培養(yǎng)“教與學(xué)”的方法,并在軟件技術(shù)、信息安全技術(shù)等相關(guān)專業(yè)的教學(xué)實(shí)施中,取得了良好的效果。
【參考文獻(xiàn)】
[1]孫海軍.基于云計(jì)算的大數(shù)據(jù)處理技術(shù)[J].信息安全與技術(shù),2014(11)
[2]王德政,申山宏,周寧寧.云計(jì)算環(huán)境下的數(shù)據(jù)存儲[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011(4)
【基金項(xiàng)目】2016年Google高職高專教育合作項(xiàng)目“基于Android云計(jì)算課程教學(xué)的研究與實(shí)踐”研究成果
(責(zé)編 劉健華)