摘 要:本文介紹了一種基于百度云平臺的點名系統(tǒng)的設(shè)計與實現(xiàn)。借助百度私人云存儲實現(xiàn)用戶點名數(shù)據(jù)私有化、持久化及共享。通過本系統(tǒng)實現(xiàn)隨時隨地讀寫點名數(shù)據(jù),為教師、輔導員等教學管理人員全面、準確掌握課堂點名信息提供技術(shù)支持。同時本文對使用百度開放API進行軟件開發(fā)有一定的借鑒意義。
關(guān)鍵詞:點名系統(tǒng);百度云開放API;百度私人云存儲
中圖分類號:TP333
目前課堂點名方式主要有:手工點名,Excel點名,C/S模式,B/S模式。手工點名主要采用一張學生花名冊并在其上記錄學生的到課情況,Excel點名只是將花名冊的從紙張的形式轉(zhuǎn)變成為電子表格的形式。點名費時費力且容易出現(xiàn)點名數(shù)據(jù)丟失、冗余和不一致等缺陷。傳統(tǒng)C/S和B/S模式點名,這兩種方式將點名操作轉(zhuǎn)換成為一種軟件系統(tǒng),實現(xiàn)點名操作的信息化。它們需要服務(wù)器端維護一份學生名錄,部分解決了上述問題。但用戶在使用過程中點名數(shù)據(jù)的掌控權(quán)在服務(wù)器端,這是目前各種點名系統(tǒng)一般采用的方式。這種方式的數(shù)據(jù)屬于服務(wù)器,這帶來了一些安全隱患,數(shù)據(jù)的安全性建立在服務(wù)器的安全性基礎(chǔ)之上。
本文利用百度云存儲技術(shù),將數(shù)據(jù)保存在百度云用戶的私人存儲空間中,數(shù)據(jù)的所有權(quán)屬于百度云的個人用戶,不在服務(wù)器中保存數(shù)據(jù),數(shù)據(jù)的安全交給百度云存儲系統(tǒng)。這種方式還有一個好處是,可以通過百度云開放API接口,實現(xiàn)數(shù)據(jù)在多終端共享和同步。
1 系統(tǒng)功能介紹
系統(tǒng)的主要功能是幫助教學管理人員輕松實現(xiàn)對學生上課情況的有效管理。系統(tǒng)的主要功能涵蓋點名流程中的各個部分,包括:(1)創(chuàng)建班級點名表;(2)到課情況登記;(3)點名情況的修改;(4)點名表與百度私人云存儲數(shù)據(jù)的同步。系統(tǒng)要求用戶創(chuàng)建一個百度云存儲的賬戶,通過授權(quán)本系統(tǒng)對用戶數(shù)據(jù)的訪問權(quán)限,從而實現(xiàn)系統(tǒng)與百度私人云存儲的數(shù)據(jù)的同步。
與傳統(tǒng)點名系統(tǒng)相比本系統(tǒng)具有如下優(yōu)點:(1)數(shù)據(jù)的編輯方式多樣,可以通過用戶所熟悉的excel方式進行編輯。也可以使用本軟件進行修改;(2)數(shù)據(jù)的隔離性好,數(shù)據(jù)不保存在第三方平臺上,直接存放在私人空間中;(3)多人使用時,不會顯著影響系統(tǒng)的性能,所使用的數(shù)據(jù)分別存放于不同的私人云空間中,數(shù)據(jù)文件讀寫計算主要由百度云服務(wù)器完成。
2 點名系統(tǒng)的設(shè)計和實現(xiàn)
2.1 點名系統(tǒng)的設(shè)計架構(gòu)。系統(tǒng)與現(xiàn)行B/S,C/S模式的點名系統(tǒng)的架構(gòu)的區(qū)別主要在于數(shù)據(jù)的保存方式?,F(xiàn)行點名系統(tǒng)數(shù)據(jù)存儲在服務(wù)器的數(shù)據(jù)庫中,本系統(tǒng)的數(shù)據(jù)存儲在百度私人云存儲中。架構(gòu)對比如圖1和圖2所示。
圖1 傳統(tǒng)點名系統(tǒng)
圖2 基于百度私人云存儲點名系統(tǒng)
2.2 百度私有云存儲API使用的關(guān)鍵技術(shù)。百度私有云存儲PCS,為第三方軟件提供了可供使用API,主要的API包括:(1)用戶認證與授權(quán);(2)文件的讀寫;(3)結(jié)構(gòu)化數(shù)據(jù)的讀寫等。
開發(fā)者在使用這些API進行程序開發(fā)前,需要向百度注冊成為百度的開發(fā)者,然后創(chuàng)建工程,并提交對PCS API開通的申請,申請信息包括應(yīng)用的目錄,使用場景,申請理由等欄目,提交后將會在一周左右時間內(nèi)批復。開啟項目的PCS API后,就可以使用上述API接口。(1)獲取用戶數(shù)據(jù)的訪問授權(quán)。第三方應(yīng)用程序如需訪問用戶數(shù)據(jù),需要得到用戶的授權(quán),讓第三方應(yīng)用程序所獲取的Access Token。Access Token對應(yīng)著第三方應(yīng)用程序與用戶數(shù)據(jù)的一個綁定關(guān)系。百度采用Oath2.0(開放授權(quán))標準,第三方應(yīng)用程序通過獲取Access Token,達到對用戶數(shù)據(jù)訪問的權(quán)限。百度OAuth2.0支持五種獲取Access Token的流程和一種刷新獲取Access Token方式,第三方應(yīng)用程序可根據(jù)需求選取合適的方式[1]。對于B/S系統(tǒng)選用Authorization Code授權(quán)流程,這種流程又稱Web Server Flow,適用于所有有server端配合的應(yīng)用。首先通過向“https://openapi.baidu.com/oauth/2.0/authorize”地址提交請求,用戶輸入用戶名密碼同意授權(quán)后,在回調(diào)uri中獲取authorization code;然后通過應(yīng)用在其服務(wù)端程序中發(fā)送請求到百度OAuth2.0授權(quán)服務(wù)的“https://openapi.baidu.com/oauth/2.0/token”地址,根據(jù)請求參數(shù)Authorization Code獲取Access Token。
(2)利用Access Token可以對PCS API進行訪問。PCS API分為兩大類,文件API和結(jié)構(gòu)化數(shù)據(jù)API。本系統(tǒng)主要使用文件API,用來同步點名系統(tǒng)所需Excel文件。其中主要用到了三個API:1)獲取單個目錄的元信息;2)下載單個文件;3)上傳單個文件。一個典型的操作流程描述如下:首先通過獲取目錄信息API得到系統(tǒng)存儲目錄中的文件中的以班級命名的Excel文件列表,以供用戶選擇需要進行點名操作的班級,然后通過下載單個文件,從私人云存儲空間中下載對應(yīng)的點名Excel文件以供點名使用,最后點名完成后將修改后的Excel文件通過上傳單個文件API更新到私人云存儲空間中。
所有API的調(diào)用都是通過向PCS服務(wù)器發(fā)送一個URL請求,在PCS服務(wù)器處理完成后得到一個返回JSON格式的字符串。點名系統(tǒng)通過對JSON數(shù)據(jù)的解析判斷API是否已經(jīng)調(diào)用成功。解析的過程使用了Newtonsoft.json.dll庫。
2.3 Excel文件的讀寫的關(guān)鍵技術(shù)。Excel文件時非常流行的一種電子表格處理軟件,它結(jié)構(gòu)清晰、操作簡單,數(shù)據(jù)分析處理強,是非常理想的記錄點名數(shù)據(jù)的載體。通過它也可以為數(shù)據(jù)管理者也能夠輕松處理點名數(shù)據(jù)。眾多的程序設(shè)計語言都可以對Excel文件進行編輯,本系統(tǒng)采用C#語言,以模板形式打開Excel文件,讀取Excel文件的第一列,得到班級中所有的學生列表,然后將點名信息記錄到內(nèi)存的鏈表中,最后通過對worksheet的寫入操作,達到本次點名保存到Excel文件中。讀寫操作使用了Excel.dll庫。
3 結(jié)束語
本文介紹的基于百度云平臺的點名軟件,以用戶私人云存儲空間(Personal Cloud Storage)為數(shù)據(jù)存儲空間。利用百度云私人存儲空間安全隔離不同用戶數(shù)據(jù)的特性,隔離了不同使用者之間的數(shù)據(jù),提供多個終端數(shù)據(jù)的同步。本文對提升校園日常教學管理技術(shù)水平有一定的幫助,并且對使用百度開放API進行軟件開發(fā)也有一定的意義。
參考文獻:
[1]百度Oath[OL].http://developer.baidu.com/wiki/index.php?title=docs/oauth.2014.04.
作者簡介:盧華燈(1981-),男,浙江磐安人,講師,碩士,研究方向:計算機教育與軟件開發(fā)?
作者單位:湖南環(huán)境生物職業(yè)技術(shù)學院,湖南衡陽 421000
基金項目:湖南環(huán)境生物職業(yè)技術(shù)學院與院長科研基金資助項目(項目編號:SZ2010-06)。