李 昂
(九江職業(yè)大學(xué),江西 九江 332000)
隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的高速發(fā)展,校園信息化與智能化發(fā)展迅速。學(xué)生宿舍管理是高校學(xué)生管理的一個(gè)重要組成部分。由于辦學(xué)質(zhì)量的不斷提高,學(xué)生數(shù)量不斷增加,傳統(tǒng)的宿舍管理模式已不能夠滿足現(xiàn)階段學(xué)生管理的需求。因此,需要開發(fā)一套基于移動(dòng)平臺(tái)的學(xué)生宿舍管理系統(tǒng)以方便宿舍管理員的日常工作。
國外有關(guān)學(xué)生宿舍管理系統(tǒng)的研究起步較早,在注重人力物力的節(jié)省上有更加成熟的管理經(jīng)驗(yàn)。美國早在二十世紀(jì)九十年代就開始推行智能化校園,美國教授Kenneth C.Green在1990年第一次提出校園信息化的概念,并于當(dāng)年進(jìn)行了針對(duì)美國的高校信息化研究項(xiàng)目,目前美國的宿舍管理信息系統(tǒng)已經(jīng)十分成熟。隨著信息技術(shù)的不斷發(fā)展以及移動(dòng)設(shè)備的日益普及,我國也將移動(dòng)平臺(tái)用于宿舍管理系統(tǒng)的建立,并且結(jié)合國外先進(jìn)的管理經(jīng)驗(yàn),應(yīng)用于實(shí)際的宿舍管理中[1-3]。
圖1 系統(tǒng)總體構(gòu)架
本文所述系統(tǒng)面向高校宿舍管理中的實(shí)際需求,針對(duì)宿舍管理員和學(xué)生用戶。建立了新聞公告、宿舍設(shè)施報(bào)修、入住遷出、水電費(fèi)查詢、失物招領(lǐng)、好友通訊錄等功能模塊。學(xué)生可以通過手機(jī)app查看并使用相關(guān)功能,宿舍管理人員可以通過后臺(tái)管理系統(tǒng)對(duì)相關(guān)信息進(jìn)行管理。通過該系統(tǒng)構(gòu)建一個(gè)穩(wěn)定方便的平臺(tái),使學(xué)生、教師、各管理部門有效結(jié)合,提升高校宿舍管理的信息化管理水平。
整個(gè)校園宿舍管理系統(tǒng)分為服務(wù)端和客戶端兩大部分。服務(wù)端系統(tǒng)總體構(gòu)架如圖1所示。服務(wù)端采用Tomcat7.0作為服務(wù)器,使用SpringBoot開發(fā)功能服務(wù),利用Mybaits連接MySQL數(shù)據(jù)庫??蛻舳耸褂肁ndroid作為操作系統(tǒng),使用OkHttp框架處理HTTP請(qǐng)求,,從服務(wù)器獲取Json數(shù)據(jù),利用Android系統(tǒng)中內(nèi)置SQLite數(shù)據(jù)庫緩存從服務(wù)器獲取的數(shù)據(jù),提升系統(tǒng)運(yùn)行速度。
在Android開發(fā)中,可以使用XML和JAVA兩種文件進(jìn)行頁面布局。為了使界面代碼與邏輯代碼盡量分離,降低代碼耦合度,本客戶端中界面主要使用XML文件來編寫。采用相對(duì)布局與線性布局混合的方式進(jìn)行界面布局。Android客戶端界面主要由閃屏頁、注冊(cè)登錄界面、主頁界面以及各個(gè)功能模塊界面組成。app整體使用Viewpager+Fragment實(shí)現(xiàn)左右滑動(dòng)切換頁面,底部使用RadioButton布局實(shí)現(xiàn)3個(gè)按鈕,用于點(diǎn)擊切換不同頁面。在主頁界面中使用Xunit框架實(shí)現(xiàn)輪播圖效果,使用Scrollview布局實(shí)現(xiàn)新聞條目的滾動(dòng)效果。各個(gè)功能界面中使用ListView控件來顯示數(shù)據(jù)庫中的記錄信息。APP部分界面如圖2所示。
客戶端主要實(shí)現(xiàn)校園宿舍管理系統(tǒng)的相關(guān)功能,根據(jù)設(shè)計(jì)需求,主要分為以下幾個(gè)部分:
(1)登錄注冊(cè):主要提供新用戶注冊(cè)功能,用戶注冊(cè)后可使用用戶名和密碼進(jìn)行登陸,登陸后方可使用app中的功能。
(2)主頁新聞:主頁提供新聞公告瀏覽功能,可以查看到管理員通過后臺(tái)發(fā)布的新聞、通知以及公告。
(3)宿舍報(bào)修:學(xué)生用戶如果發(fā)現(xiàn)宿舍設(shè)施損壞,可以通過宿舍報(bào)修功能進(jìn)行報(bào)修,宿舍管理員可以通過后臺(tái)查看提交的保修單,從而實(shí)現(xiàn)報(bào)修信息的及時(shí)反饋。
(4)入住遷出:可使用該功能實(shí)現(xiàn)新生入住、畢業(yè)生離校登記,方便無紙化管理。
(5)晚歸登記:晚歸的學(xué)生需要登記,宿舍管理員可以使用該功能填寫晚歸信息,該信息會(huì)傳輸至后臺(tái)服務(wù)器進(jìn)行記錄。
(6)失物招領(lǐng):可作為校園失物招鄰平臺(tái),撿到的失物可通過該板塊公布出來,以便失主尋找自己丟失的物品。
本系統(tǒng)Android客戶端使用簽名機(jī)制與本地?cái)?shù)據(jù)庫加密兩個(gè)方面來保證系統(tǒng)安全。
(1)簽名機(jī)制能保證軟件的授權(quán)唯一性,如果用戶下載到未經(jīng)授權(quán)并含有惡意代碼的非正常軟件,會(huì)導(dǎo)致重要信息被竊取,造成嚴(yán)重的危害。因此所有手機(jī)app在發(fā)布之前都要經(jīng)過簽名加密。本文系統(tǒng)使用Eclipse來生成帶有數(shù)據(jù)簽名的apk安裝文件?;静僮髁鞒虨椋篎ile--Export Android Application—Create new keystore—填寫密鑰信息。在下一次升級(jí)版本時(shí)只需要選擇之前保存過的數(shù)據(jù)證書文件即可。
圖2 宿舍管理APP部分界面
(2)通過對(duì)比SQLCipher所提供API和Android原生的數(shù)據(jù)庫API,實(shí)際的使用效果基本上是完全相同的。這是由于SQLCipher對(duì)Android SDK中的與數(shù)據(jù)庫相關(guān)的API都備份了,整個(gè)過程中,SQLCipher同步實(shí)現(xiàn)了加密和解密的步驟,而沒有造成額外的延時(shí)。
本系統(tǒng)服務(wù)端采用SpringBoot框架進(jìn)行開發(fā)。傳統(tǒng)的Spring框架在搭建、配置與部署過程中都依賴大量的配置,對(duì)于小型項(xiàng)目的配置工作都會(huì)十分繁瑣,開發(fā)效率低下,并容易產(chǎn)生大量異常。Spring-Boot框架是一種基于Spring框架的全新框架,其基于“約定優(yōu)先配置”的原則,大大簡化了配置。在部署時(shí),SpringBoot內(nèi)置的Tomcat容器使單一的jar包部署和管理變得十分簡單,該框架還可對(duì)應(yīng)用程序進(jìn)行監(jiān)控,即支持關(guān)系型數(shù)據(jù)庫也可支持非關(guān)系型數(shù)據(jù)庫。SpringBoot作為Spring項(xiàng)目組的微服務(wù)產(chǎn)品,正在大規(guī)模的占領(lǐng)軟件市場(chǎng)[4]。
Mybatis是一種對(duì)象關(guān)系映射框架,它是當(dāng)前最主流的JAVA持久化框架之一。其性能優(yōu)異且靈活性高,可以讓開發(fā)人員使用面向?qū)ο蟮乃枷雭黹_發(fā)數(shù)據(jù)庫,并使用XML或注解代替JDBC代碼和參數(shù)的手動(dòng)配置。Mybatis可以配置動(dòng)態(tài)SQL并支持存儲(chǔ)過程,適合一些復(fù)雜且需要不斷優(yōu)化的項(xiàng)目使用。本項(xiàng)目將其作為持久化框架來映射關(guān)系型數(shù)據(jù)庫。
本系統(tǒng)后臺(tái)采用MySQL數(shù)據(jù)庫來存儲(chǔ)數(shù)據(jù),通過HTTP協(xié)議傳輸Json格式數(shù)據(jù)與移動(dòng)端進(jìn)行數(shù)據(jù)交互。需要建立用戶信息表、晚歸登記表、宿舍報(bào)修表以及失物招領(lǐng)表等,如表1所示。用戶信息表用于存儲(chǔ)用戶名、密碼、學(xué)生姓名所屬學(xué)院等信息,晚歸登記表用于登記學(xué)生的晚歸信息,宿舍報(bào)修表用于存儲(chǔ)宿舍的設(shè)施報(bào)修信息,失物招領(lǐng)表用于存儲(chǔ)失物招領(lǐng)的填報(bào)信息。
本系統(tǒng)采用Android移動(dòng)端與服務(wù)端前后端分離開發(fā),服務(wù)端提供JSON數(shù)據(jù)接口,移動(dòng)端解析數(shù)據(jù)后將數(shù)據(jù)進(jìn)行顯示。本系統(tǒng)使用RESTful API風(fēng)格來設(shè)計(jì)接口。RESTful是目前最為流行的一套互聯(lián)網(wǎng)軟件構(gòu)架,它結(jié)構(gòu)清晰、符合標(biāo)準(zhǔn)、易于理解、擴(kuò)展方便[5]。其最早由Roy Thomas Fielding在他2000年的博士論文中提出。REST是Representation al State Transfer的縮寫,翻譯為“表現(xiàn)層狀態(tài)轉(zhuǎn)化”。包括GET,DELETE,PUT和POST等典型用法。
表1 部分?jǐn)?shù)據(jù)庫信息表
本文設(shè)計(jì)了一種基于Android和SpringBoot的高校宿舍管理系統(tǒng),將移動(dòng)互聯(lián)網(wǎng)與高校宿舍管理相結(jié)合。移動(dòng)端使用Android技術(shù)進(jìn)行開發(fā),服務(wù)端基于SpringBoot+Mybaits框架進(jìn)行搭建。闡述了移動(dòng)端安全功能設(shè)計(jì)與前后端分離的通信實(shí)現(xiàn)方式。本系統(tǒng)可實(shí)現(xiàn)校園新聞瀏覽、宿舍報(bào)修,學(xué)生入住遷出以及晚歸登記等操作。經(jīng)過測(cè)試,本系統(tǒng)運(yùn)行穩(wěn)定,能夠滿足設(shè)計(jì)需求,具有一定的實(shí)用價(jià)值。