華澤,韓東旭,陸悠,張妮
(蘇州科技大學(xué)電子與信息工程學(xué)院,江蘇215009)
學(xué)校圖書館自習(xí)室自動(dòng)選座系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
華澤,韓東旭,陸悠,張妮
(蘇州科技大學(xué)電子與信息工程學(xué)院,江蘇215009)
當(dāng)今大量圖書館的座位資源往往受多種人為因素的影響與制約而得不到合理的分配與使用。為此,基于B/S模式和完整的三層結(jié)構(gòu)設(shè)計(jì),設(shè)計(jì)和開發(fā)圖書館自習(xí)室自動(dòng)選座系統(tǒng),具有查看自習(xí)室座位使用情況、手動(dòng)與自動(dòng)選座、續(xù)座、暫時(shí)離開、座位預(yù)約及取消預(yù)約、消息推送、查看常用座位等功能。
自習(xí)室;自動(dòng)選座;入座;座位預(yù)約
學(xué)校圖書館是一個(gè)相對(duì)寬敞、安靜的公共區(qū)域,擁有多數(shù)自習(xí)室以及豐富的書籍,為學(xué)生們提供了一個(gè)良好的讀書氛圍。比之其他區(qū)域的自習(xí)室,更加安靜、和諧,作為一個(gè)最佳閱讀自習(xí)場(chǎng)所最好不過(guò);自然而然,圖書館自習(xí)室本身就是一處公共場(chǎng)所,每日進(jìn)進(jìn)出出的學(xué)生形形色色,無(wú)可避免的是每個(gè)人都會(huì)產(chǎn)生不同的行為和思維模式,一些不良現(xiàn)象也應(yīng)運(yùn)而生。在此之中,“占位”現(xiàn)象尤為突出。伴隨著越來(lái)越多的校園擴(kuò)招,圖書館自習(xí)室的座位問(wèn)題層出不窮,當(dāng)寒冷的冬天到來(lái)時(shí),圖書館成為一個(gè)最佳學(xué)習(xí)場(chǎng)所,然而自習(xí)室的空位數(shù)量有限,于是座位的占用現(xiàn)象開始出現(xiàn),有的學(xué)生在座位上放水杯和一堆書籍,甚至粘紙等占有方式……在圖書館,許多學(xué)生都疲憊不堪,只是為了得到一個(gè)地方。自習(xí)室的座位資源開始越來(lái)越匱乏,每每可以看到一個(gè)個(gè)座位上堆放著一本本的書,或者是放著一些其他事物,但是顯而易見的是,大部分座位都是空置的,學(xué)生們難免有不滿的聲音。與此同時(shí),圖書館的規(guī)定往往會(huì)被學(xué)生們拋諸腦后,當(dāng)學(xué)生們離開座位的時(shí)候,位置上仍然擺放著諸多私人物品,以宣誓座位的主權(quán)。
圖書館自習(xí)室自動(dòng)選座系統(tǒng)是針對(duì)自習(xí)室占座等不良現(xiàn)象而導(dǎo)致的圖書館座位資源浪費(fèi)而開發(fā)的軟件平臺(tái),自動(dòng)選座系統(tǒng)能夠?qū)崿F(xiàn)與用戶的友好交互,它可以從根本上處理了自習(xí)室座位資源被占據(jù)使用卻不能實(shí)現(xiàn)有效運(yùn)用的問(wèn)題,改善了圖書館自習(xí)室座位資源被浪費(fèi)的情況,提高讀者的行動(dòng)效率與維系好圖書館自習(xí)室井井有條的良好秩序。該系統(tǒng)為用戶創(chuàng)造舒心流暢的交互界面,系統(tǒng)具備快速的運(yùn)轉(zhuǎn)效率,可以實(shí)現(xiàn)提升圖書館自習(xí)室座位資源利用率的目的。完善運(yùn)用歷史記錄的數(shù)據(jù)資源,剖析學(xué)生在自習(xí)室里的選座規(guī)律,發(fā)掘和提煉出相關(guān)信息,以此來(lái)實(shí)現(xiàn)對(duì)圖書館自習(xí)室座位管理的合理安排,為學(xué)校對(duì)圖書館自習(xí)室的座位安排及規(guī)則的制定提供幫助。
本系統(tǒng)采用三層架構(gòu)的系統(tǒng)結(jié)構(gòu)設(shè)計(jì):
數(shù)據(jù)層:該層實(shí)現(xiàn)的是對(duì)數(shù)據(jù)庫(kù)或者文本文件中的數(shù)據(jù)的操作,通過(guò)從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)并進(jìn)行相關(guān)處理再將數(shù)據(jù)傳遞給業(yè)務(wù)邏輯層或者直接傳遞給表示層即UI界面。
業(yè)務(wù)邏輯層:本業(yè)務(wù)層是對(duì)具體功能的具體操作,也就是調(diào)用該層的方法對(duì)數(shù)據(jù)層進(jìn)行操作,是界面和數(shù)據(jù)庫(kù)的連接樞紐。
表示層:該層主要表現(xiàn)為UI界面,也即網(wǎng)頁(yè),該層主要向業(yè)務(wù)邏輯層提交請(qǐng)求,并獲取返回?cái)?shù)據(jù)與界面中顯示出來(lái)。
系統(tǒng)主要有三大部分構(gòu)成:校內(nèi)用戶的操作、校外用戶的操作以及違規(guī)檢測(cè),系統(tǒng)功能結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)整體功能模塊圖
該模塊是整個(gè)系統(tǒng)的開始模塊,在登錄時(shí)要對(duì)用戶進(jìn)行區(qū)分,劃分為校內(nèi)用戶和校外用戶兩種。此兩者最大的區(qū)別就在于數(shù)據(jù)的持久性。校內(nèi)用戶的賬戶信息是系統(tǒng)中所存在的并且將一直保留,每一次的操作記錄數(shù)據(jù)都將保留一個(gè)星期后由系統(tǒng)自動(dòng)刪除。而校外用戶的登錄賬號(hào)是臨時(shí)分配的,具有臨時(shí)性,在一段時(shí)間后將會(huì)自動(dòng)將該賬號(hào)回收,并且清楚有關(guān)該賬戶的一系列數(shù)據(jù)信息。
該模塊作為整個(gè)系統(tǒng)的核心、關(guān)鍵,該模塊負(fù)責(zé)將自習(xí)室A,B,C中的座位桌椅具體顯示出來(lái),最重要的是將座位的狀態(tài)區(qū)分為5種:可選、預(yù)約、有人、暫離和我的座位。該模塊負(fù)責(zé)從數(shù)據(jù)庫(kù)中讀取每一個(gè)座位的狀態(tài)數(shù)據(jù),并對(duì)這些數(shù)據(jù)集進(jìn)行解析,將與這些狀態(tài)數(shù)據(jù)相對(duì)應(yīng)的狀態(tài)圖片在網(wǎng)頁(yè)頁(yè)面上進(jìn)行切換顯示。
除了桌椅狀態(tài)圖片的顯示,另外還有對(duì)消息推送的顯示和我的常用座位的顯示。在消息推送模塊和我的常用座位模塊中,采用輪詢的方式,運(yùn)用AJAX技術(shù),每間隔0.1秒向后臺(tái)服務(wù)器發(fā)送更新的request,收到response后解析返回的json數(shù)據(jù)并且顯示。
除此之外,該模塊還負(fù)責(zé)數(shù)據(jù)分析顯示的功能,將后臺(tái)傳輸?shù)骄W(wǎng)頁(yè)的數(shù)據(jù)通過(guò)折線圖和餅狀圖形象的顯示出來(lái)。
該模塊主要負(fù)責(zé)檢驗(yàn)用戶的座位預(yù)約是否合法。首先當(dāng)用戶點(diǎn)擊座位的預(yù)約時(shí),系統(tǒng)將檢測(cè)該用戶是否已經(jīng)擁有座位,若該用戶當(dāng)前沒有擁有座位才可以進(jìn)行預(yù)約,在成功進(jìn)行預(yù)約后,系統(tǒng)將把用戶名和用戶所預(yù)約的座位號(hào)發(fā)送給后臺(tái),后臺(tái)對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)。預(yù)約座位流程圖如圖2所示。
該模塊包括兩種選座的方式:手動(dòng)選座和自動(dòng)選座。選座模式類似于預(yù)約,一個(gè)用戶只能擁有一個(gè)座位,在成功進(jìn)行選座后,系統(tǒng)將把用戶名和用戶所選擇的座位號(hào)發(fā)送給后臺(tái),后臺(tái)對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)。額外的是,自動(dòng)選座采取的是常用座位優(yōu)先選座方式,前面提到數(shù)據(jù)顯示中有我的常用座位的顯示功能,系統(tǒng)會(huì)先對(duì)這些常用座位進(jìn)行檢測(cè),檢測(cè)的順序的優(yōu)先級(jí)為最近使用的時(shí)間,若該座位目前可選,則自動(dòng)分配給用戶,若常用座位都已經(jīng)有人,則系統(tǒng)通過(guò)隨機(jī)數(shù)的方式為用戶生成座位號(hào),并將數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫(kù)中。實(shí)現(xiàn)選座業(yè)務(wù)功能的流程圖如圖3所示。
圖3 選座業(yè)務(wù)流程圖
該模塊負(fù)責(zé)對(duì)座位進(jìn)行續(xù)座功能。每個(gè)座位的分配時(shí)效為兩個(gè)小時(shí),在座位使用的前一個(gè)半小時(shí)中續(xù)座功能是不會(huì)提供的,當(dāng)該座位的使用時(shí)間達(dá)到一個(gè)半小時(shí)時(shí),系統(tǒng)會(huì)通過(guò)消息推送提醒用戶需要進(jìn)行續(xù)座,與此同時(shí),在用戶的功能選擇欄中會(huì)自動(dòng)跳出續(xù)座的按鈕。用戶通過(guò)點(diǎn)擊,系統(tǒng)會(huì)自動(dòng)修改座位的使用時(shí)間,并延長(zhǎng)兩個(gè)小時(shí)的時(shí)效。
該模塊負(fù)責(zé)的修改座位的狀態(tài)為暫離狀態(tài)。暫離狀態(tài)類似于續(xù)座功能,在用戶沒有擁有座位前,該功能是不對(duì)用戶提供的。暫離狀態(tài)分為兩種:普通暫離和吃飯時(shí)間的暫離。當(dāng)用戶進(jìn)行暫離申請(qǐng)時(shí),系統(tǒng)會(huì)自動(dòng)獲取當(dāng)前時(shí)間,檢測(cè)時(shí)間段是否在飯點(diǎn)上,若是則自動(dòng)申請(qǐng)60分鐘的暫離,否則申請(qǐng)30分鐘的暫離。
該模塊負(fù)責(zé)座位的離座功能。離座即意味著該座位當(dāng)前沒有用戶在使用,為可選狀態(tài)。類似于暫時(shí)離座模塊,在用戶沒有擁有座位前,該功能是不對(duì)用戶提供的。當(dāng)用戶點(diǎn)擊離座按鈕后,系統(tǒng)將自動(dòng)獲取用戶名,并將該用戶所擁有的的座位狀態(tài)進(jìn)行修改,同時(shí)將用戶的此次選座記錄存入日志數(shù)據(jù)表中以及清空用戶的消息推送。
該模塊是出于對(duì)系統(tǒng)的安全考慮,為防止某些用戶的惡意使用,而對(duì)用戶進(jìn)行約束的功能。在用戶預(yù)約座位模塊中,用戶必須在30分鐘內(nèi)到達(dá);在用戶暫離模塊中,用戶必須在申請(qǐng)的暫離時(shí)間內(nèi)及時(shí)返回。在以上兩個(gè)模塊中,系統(tǒng)將每隔0.1秒對(duì)數(shù)據(jù)進(jìn)行檢測(cè),如果用戶的到達(dá)時(shí)間和返回時(shí)間不在規(guī)定的時(shí)間范圍中,則自動(dòng)記違規(guī)一次,并且每次違規(guī)都會(huì)對(duì)用戶進(jìn)行相應(yīng)的消息提醒,當(dāng)用戶的違規(guī)次數(shù)達(dá)到3次時(shí),系統(tǒng)則會(huì)自動(dòng)對(duì)用戶的權(quán)限進(jìn)行修改,類似于拉入黑名單的操作,用戶將無(wú)法登入系統(tǒng)。
該模塊負(fù)責(zé)實(shí)現(xiàn)用戶預(yù)約座位的到達(dá)和用戶暫離后的到達(dá)。由于用戶是在到達(dá)圖書館自習(xí)室時(shí)才能確認(rèn)到達(dá),為了模擬該到達(dá),在導(dǎo)航欄中添加到達(dá)的模擬頁(yè)面,用戶只有在到達(dá)后才可以在給定的頁(yè)面確認(rèn)到達(dá)。
JSP:JSP具有更新快,易于升級(jí),易于部署,維護(hù)和修改的優(yōu)點(diǎn)。我們使用JSP技術(shù)作為整個(gè)圖書館自習(xí)室自動(dòng)選座系統(tǒng)的開發(fā)。使用Java作為開發(fā)語(yǔ)言。
Tomcat:Tomcat是一種Web應(yīng)用服務(wù)器,因其免費(fèi)的開放源代碼而風(fēng)靡編程界。該服務(wù)器性能較為穩(wěn)定,另一方面,它又是JSP和Servlet的容器。
MySQL:MySQL檢索快,相對(duì)于其他付費(fèi)工具,MySQL免費(fèi)且支持?jǐn)?shù)種操作系統(tǒng),對(duì)于中小型應(yīng)用的實(shí)現(xiàn)較為方便。在Web查詢模塊中我們使用JDBC接口。
功能模塊的實(shí)現(xiàn)包括:登陸模塊、數(shù)據(jù)顯示模塊、預(yù)約模塊、選座模塊、續(xù)座模塊、暫時(shí)離座模塊、離座模塊、違規(guī)檢測(cè)模塊。這里只列舉幾個(gè)重要模塊實(shí)現(xiàn)。
(1)登錄功能模塊的實(shí)現(xiàn)
登錄功能模塊包括校內(nèi)用戶和校外用戶的登錄,實(shí)現(xiàn)其不同的功能。
(2)數(shù)據(jù)顯示模塊
數(shù)據(jù)顯示模塊包括自習(xí)室座位當(dāng)前狀況的顯示,如圖4所示、我的常用座位的顯示、消息推送如圖5所示和數(shù)據(jù)分析的顯示。
圖4 自習(xí)室座位顯示頁(yè)面
圖5 查看我的常用座位頁(yè)面
(3)預(yù)約座位模塊的實(shí)現(xiàn)
預(yù)約座位模塊需在對(duì)應(yīng)的自習(xí)室座位顯示頁(yè)面中進(jìn)行操作,通過(guò)對(duì)當(dāng)前可以預(yù)約的座位進(jìn)行點(diǎn)擊向服務(wù)器提交用戶預(yù)約用戶信息并修改數(shù)據(jù)庫(kù)中座位的狀態(tài)表,預(yù)約成功后,座位狀態(tài)將會(huì)自動(dòng)改變?yōu)楸活A(yù)約狀態(tài),即由原來(lái)的可預(yù)約狀態(tài)轉(zhuǎn)換為不可在預(yù)約的紅色狀態(tài),同時(shí)消息推送中會(huì)提示用戶在30分鐘內(nèi)盡快到達(dá),預(yù)約成功界面如圖6所示。
圖6 預(yù)約座位成功頁(yè)面
預(yù)約成功的主要實(shí)現(xiàn)代碼:
String roomNum=null,tableNum=null,seatNum=null;
roomNum=seatid.substring(0,1);
tableNum=seatid.substring(1,3);
seatNum=seatid.substring(3,4);
seatService.update(new Seat(roomNum,tableNum,seatNum,"2",time,num));
myappointService.add(new Myappointment(num,roomNum,tableNum,seatNum,time,null,"2"));
String content="您已經(jīng)預(yù)約了"+seatid+"座位!您需要在30分鐘內(nèi)到達(dá)!";
String title="預(yù)約信息";
newsService.add(new News(num,title,content,time));
(4)到達(dá)模塊的實(shí)現(xiàn)
在預(yù)約成功后,用戶需在30分鐘內(nèi)到達(dá);在申請(qǐng)暫時(shí)離開后,用戶也需要在規(guī)定時(shí)間內(nèi)返回。在到達(dá)頁(yè)面中點(diǎn)擊自己的座位即可完成,座位狀態(tài)將會(huì)發(fā)生改變?yōu)橛腥藸顟B(tài),但是為了用戶便于找到自己的座位,將用戶自己的座位標(biāo)識(shí)為綠色即“我的座位”。如圖7所示。
(5)續(xù)座模塊的實(shí)現(xiàn)
在用戶的座位即將過(guò)期前,系統(tǒng)將通過(guò)消息推送自動(dòng)提示用戶座位即將過(guò)期,且續(xù)座按鈕開放,用戶點(diǎn)擊續(xù)座按鈕即可,如圖8所示。實(shí)現(xiàn)續(xù)座模塊核心代碼:
Date afterDate=new Date(date.getTime()+7200000);
String aftertime=dateFormat.format(afterDate);
seatService.updateTime(new Seat(aftertime,num));
String content="您已經(jīng)成功對(duì)"+seatid+"座位進(jìn)行了續(xù)座2小時(shí)!";
String title="續(xù)座信息";
newsService.add(new News(num,title,content,aftertime));
logdataService.add(new Logdata(num,roomNum,tableNum,seat-Num,time,nowtime));
圖7 到達(dá)頁(yè)面
圖8 續(xù)座頁(yè)面
圖9 申請(qǐng)暫時(shí)離開頁(yè)面
(6)暫時(shí)離座模塊的實(shí)現(xiàn)
暫時(shí)離座模塊獲取用戶名后到數(shù)據(jù)庫(kù)中查找到用戶對(duì)應(yīng)擁有的座位,并對(duì)數(shù)據(jù)庫(kù)做相應(yīng)的修改,當(dāng)申請(qǐng)成功后,座位狀態(tài)相應(yīng)改變?yōu)闀簳r(shí)離開狀態(tài)圖片,如圖9所示。關(guān)鍵的實(shí)現(xiàn)代碼:
roomNum=seatid.substring(0,1);
tableNum=seatid.substring(1,3);
seatNum=seatid.substring(3,4);
seatService.update(new Seat(roomNum,tableNum,seatNum,"4",time,num));
temppartService.add(new Temporarilypart(num,roomNum,table-
Num,seatNum,nowtime,type));
String content="您已經(jīng)成功申請(qǐng)"+seatid+"座位暫離30分鐘!";
String title="暫離信息";
if(type.equals("2")){
content="您已經(jīng)成功申請(qǐng)"+seatid+"座位暫離60分鐘!";
}
newsService.add(new News(num,title,content,time));
本文闡述了圖書館自習(xí)室自動(dòng)選座系統(tǒng)的開發(fā)背景與意義,并對(duì)系統(tǒng)進(jìn)行了全面設(shè)計(jì),進(jìn)而實(shí)現(xiàn)了該系統(tǒng)。學(xué)校圖書館自習(xí)室自動(dòng)選座系統(tǒng)實(shí)現(xiàn)的功能從根本上解決了圖書館自習(xí)室座位資源得不到合理分配,用戶體驗(yàn)較差的問(wèn)題。本系統(tǒng)除了具有傳統(tǒng)信息管理系統(tǒng)的功能外,還具有頁(yè)面自適應(yīng)化、響應(yīng)式布局等功能。支持多個(gè)客戶端同時(shí)在線操作;通過(guò)日程管理,實(shí)現(xiàn)網(wǎng)頁(yè)的自動(dòng)更新及普通的網(wǎng)頁(yè)編輯與正式發(fā)布分離,規(guī)避了錯(cuò)誤的操作而顯示不正確的頁(yè)面。
[1]葉莎莎.國(guó)外大學(xué)圖書館對(duì)外開放服務(wù)模式探析[J].圖書館學(xué)研究,2012,(6):88-93.
[2]胡文康.圖書館自習(xí)室自動(dòng)排座系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)時(shí)代,2016,(8):50-52.
[3]蘇新寧.大數(shù)據(jù)時(shí)代數(shù)字圖書館面臨的機(jī)遇和挑戰(zhàn)[J].中國(guó)圖書館學(xué)報(bào).2015,(6):4-12.
[4]耿祥義,張躍平著.Java面向?qū)ο蟪绦蛟O(shè)計(jì)[M].清華大學(xué):清華大學(xué)出版社,2010.
[5]傳智播客高教產(chǎn)品研發(fā)部.《MySQL數(shù)據(jù)庫(kù)入門》[M].清華大學(xué)出版社,2015.
[6]鄭阿奇.JavaEE實(shí)用教程[Z].北京:電子工業(yè)出版社,2013.
[7]楊新涯,王文清,張潔,王寧.CALIS三期共享域與圖書館系統(tǒng)整合的實(shí)踐研究[J].大學(xué)圖書館學(xué)報(bào),2012(1):5-8+99.
[8]武依文.O2O模式下電影在線選座系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].北京交通大學(xué),2016.
[9]嚴(yán)蔚敏,吳偉民著.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版).清華大學(xué)出版社,2011.
華澤(1968-),女,河南南陽(yáng)人,碩士,副教授,研究方向?yàn)檐浖O(shè)計(jì),智能交通技術(shù)、網(wǎng)絡(luò)應(yīng)用
Design and Implementation of Automatic Selection System for Library Self-Study Room
HUA Ze,HAN Dong-xu,LU You,ZHANG Ni
(SchoolofElectronic and Information Engineering,Suzhou University ofScience and Technology,Suzhou 215009)
There are a lotoflibraries in Chinese society,and the library's seatresources are often influenced and restricted by many kinds ofhuman factors,and cannotbe used and allocated rationally.In order to solve this problem,based on B/S mode and a complete three-tier structure design,designs and develops the library selection room automatic seatselection system,has the function ofchecking the seatofthe study room,manually and automatically selects the seat,renews the seat,temporarily leaves the function,and cancelappointments,push messages,view common seats,etc.
Self-Study Room;Automatic SeatSelection;Be Seated;SeatPre-book
1007-1423(2017)30-0056-05
10.3969/j.issn.1007-1423.2017.30.012
2017-06-27
2017-10-15