方 巍,單瀅瀅,張俊杰
(南京信息工程大學(xué)計算機(jī)與軟件學(xué)院,江蘇南京 210044)
基于Android的云考勤系統(tǒng)設(shè)計與實(shí)現(xiàn)
方 巍,單瀅瀅,張俊杰
(南京信息工程大學(xué)計算機(jī)與軟件學(xué)院,江蘇南京 210044)
學(xué)生考勤工作是課堂教學(xué)管理的一個重要環(huán)節(jié)。目前,高校大多采用傳統(tǒng)手工的方式進(jìn)行考勤,這種方式存在易出錯、效率低、共享性差、無法解決代考、脫崗等問題。隨著“移動互聯(lián)網(wǎng)”時代的來臨,迫切需要更科學(xué)先進(jìn)的解決方案。為此,開發(fā)了一款基于Android的智能云考勤系統(tǒng),該系統(tǒng)基于百度云平臺和百度Map服務(wù),利用GPS定位技術(shù),采用Android移動開發(fā)框架,借助SQLite輕量級數(shù)據(jù)庫及MySQL關(guān)系數(shù)據(jù)庫。同時,系統(tǒng)還提供精確的基于位置服務(wù)(LBS)的定位考勤服務(wù)。該系統(tǒng)在實(shí)際應(yīng)用中不僅方便學(xué)生使用,而且方便教師和相關(guān)工作人員可以隨時隨地使用以了解學(xué)生的出勤情況,從而使教學(xué)管理更加科學(xué)和有效。
學(xué)生考勤系統(tǒng);Android;云計算;位置服務(wù)
隨著信息社會的日益發(fā)展,計算機(jī)技術(shù)成為當(dāng)下必不可少的科技力量,其應(yīng)用涉及的領(lǐng)域也越來越廣泛,人們的生活越來越離不開計算機(jī)應(yīng)用技術(shù)的發(fā)展所帶來的便利。同時,以前很多只能在臺式計算機(jī)上運(yùn)行的軟件系統(tǒng),也越來越掌上化、移動化。其中,重要的轉(zhuǎn)變就是手機(jī)軟件市場的發(fā)展,將很多應(yīng)用功能濃縮到隨身攜帶的手機(jī)上。此外,4G網(wǎng)絡(luò)的廣泛應(yīng)用也為移動應(yīng)用部署到云端提供了更優(yōu)異的網(wǎng)絡(luò)環(huán)境。
學(xué)生考勤不僅是為了監(jiān)督學(xué)生上課出勤,督促學(xué)生完成課業(yè),同時也為學(xué)生在校安全提供了保障,減少意外事故的發(fā)生。雖然手機(jī)軟件數(shù)量越發(fā)龐大,但是對于學(xué)生考勤系統(tǒng)的開發(fā),在手機(jī)市場上還屬于比較新的概念。目前,就普通大學(xué)的隨堂考勤情況來看,教師大多還是采用傳統(tǒng)的手工考勤模式。這種模式,缺少數(shù)據(jù)管理以及實(shí)時傳遞機(jī)制,不利于考勤數(shù)據(jù)的實(shí)時管理與共享且存儲效率低。因此,開發(fā)出一款手機(jī)考勤管理系統(tǒng)、實(shí)現(xiàn)實(shí)時智能考勤具有一定的研究價值和意義。
文中基于Android的智能云考勤系統(tǒng)的實(shí)現(xiàn)展開論述,主要介紹了系統(tǒng)的總體設(shè)計、數(shù)據(jù)庫設(shè)計、服務(wù)器和客戶端設(shè)計、云端部署以及搭建環(huán)境等。
為滿足高??记诘膶?shí)際需求,系統(tǒng)主要分為兩大模塊,即部署到云端的服務(wù)器和客戶端。其中,云服務(wù)端租用百度云BAE,將核心服務(wù)端應(yīng)用及數(shù)據(jù)庫封裝到云,實(shí)現(xiàn)數(shù)據(jù)的持久化,通過網(wǎng)絡(luò)通信可隨時隨地實(shí)現(xiàn)考勤數(shù)據(jù)的管理;客戶端主要是Android[1-4]手機(jī)端的功能實(shí)現(xiàn),根據(jù)LBS服務(wù)[5-6]定位模塊獲取手機(jī)位置,通過HTTP協(xié)議訪問云端數(shù)據(jù)庫并進(jìn)行對比,匹配成功則進(jìn)行相應(yīng)操作,最終將數(shù)據(jù)傳送到云端。其工作流程圖如圖1所示。
服務(wù)端的設(shè)計主要為客戶端的數(shù)據(jù)訪問提供機(jī)制,分別在Android端采用C/S設(shè)計模式及瀏覽器端采用B/S設(shè)計模式。用戶不僅可以通過Android手機(jī)訪問數(shù)據(jù),也可以通過瀏覽器進(jìn)行操作。為了更高效地操作考勤系統(tǒng),該系統(tǒng)設(shè)置了教師端和學(xué)生端兩種訪問權(quán)限,分別有不同的操作功能。其中,教師端可對全部考勤數(shù)據(jù)進(jìn)行操作,學(xué)生端則只能操作個人考勤信息。另外,系統(tǒng)增設(shè)了管理員終端以管理用戶權(quán)限。圖2為系統(tǒng)功能模塊結(jié)構(gòu)。
圖2 系統(tǒng)功能結(jié)構(gòu)
具體來說,系統(tǒng)的基本功能包括:計算基站定位、基礎(chǔ)數(shù)據(jù)管理、考勤記錄檢索、組織機(jī)構(gòu)管理和權(quán)限控制等。具體的系統(tǒng)整體架構(gòu)如圖3所示。
(1)采用現(xiàn)有的百度云平臺,實(shí)現(xiàn)數(shù)據(jù)的實(shí)時存儲功能。
服務(wù)器借助云計算技術(shù),部署在云平臺上。主要包括Web Service[7]服務(wù)器、LBS服務(wù)平臺和學(xué)生數(shù)據(jù)庫三個子模塊?;诂F(xiàn)有的百度云平臺、新浪云平臺,通過移動終端將大量的網(wǎng)絡(luò)資源統(tǒng)一起來,提供強(qiáng)勁的查詢處理能力和更快的服務(wù)器響應(yīng)能力。
(2)Android客戶端模塊開發(fā)。
由在線考勤、考勤統(tǒng)計、信息匯總、賬號管理等模板組成??记诘耐瑫r,手機(jī)會自行啟動位置模塊,定位并發(fā)送數(shù)據(jù)到云服務(wù)器,與數(shù)據(jù)庫中的位置信息進(jìn)行比對,進(jìn)而完成定位。
(3)用戶界面。
主要由用戶登錄界面、學(xué)生端主界面、教師端主界面等界面組成。在MVC設(shè)計模式的實(shí)現(xiàn)中,用戶界面主要用于界面顯示的實(shí)現(xiàn),直接面向用戶,是用戶對系統(tǒng)最直接的感受。
為了動態(tài)管理考勤數(shù)據(jù),需要設(shè)計一個合理規(guī)范的數(shù)據(jù)庫[8]。當(dāng)下,數(shù)據(jù)庫的產(chǎn)品也有很多。MySQL數(shù)據(jù)庫因其開源、免費(fèi),同時又兼具簡單、靈活、支持多語言平臺等優(yōu)點(diǎn),在中小型軟件設(shè)計中備受青睞。該系統(tǒng)采用MySQL數(shù)據(jù)庫對考勤數(shù)據(jù)進(jìn)行管理。
針對高校考勤的實(shí)際情況,需要擬定用戶信息、課程信息、考勤信息三方面的表。用戶表主要記錄各種用戶的身份信息,包括自身id、姓名、密碼、性別、聯(lián)系方式等相關(guān)屬性;課程信息是表設(shè)計的重點(diǎn),包括課程id、院系id、班級id、選課id、任課教師id以及學(xué)生id等具體屬性;考勤表需要包含的信息除了相關(guān)課程信息外,還需要有考勤情況操作時間等必要屬性。根據(jù)數(shù)據(jù)庫的規(guī)范化要求[2],可以將用戶表細(xì)分為:管理員表、教師表、學(xué)生表;將課程表細(xì)分為:學(xué)院表、班級表、課程表;考勤表記錄項(xiàng)。利用Power Designer軟件內(nèi)置的強(qiáng)大功能,可以根據(jù)上文構(gòu)建的PDM模型[9]自動生成該考勤系統(tǒng)的數(shù)據(jù)庫腳本,完成數(shù)據(jù)庫的代碼實(shí)現(xiàn)。
眾所周知,Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,隨著移動開發(fā)技術(shù)的不斷發(fā)展,Android開發(fā)環(huán)境也在不斷優(yōu)化。該系統(tǒng)的客戶端就是在此環(huán)境下開發(fā)的,在E-clipse中集成的ADT開發(fā)平臺上,為了兼容多平臺的安卓系統(tǒng),選用API 8作為最低兼容SDK。
Android的設(shè)計遵循MVC框架,即模型-視圖-控制模式,將業(yè)務(wù)邏輯層、數(shù)據(jù)層和視圖層分離。視圖層采用XML文件進(jìn)行設(shè)計,主要有登陸界面、注冊界面、查詢界面,另外,根據(jù)登陸的權(quán)限,教師端可以訪問全部考勤信息界面、考勤數(shù)據(jù)管理界面等,學(xué)生端可以訪問個人信息界面、簽到界面等。業(yè)務(wù)邏輯層主要通過消息—活動機(jī)制(Intent-Activity)實(shí)現(xiàn)數(shù)據(jù)的傳遞和操作,并根據(jù)HTTP協(xié)議實(shí)現(xiàn)對云端服務(wù)器的通信訪問。數(shù)據(jù)層主要通過云服務(wù)端的訪問機(jī)制,在云端進(jìn)行數(shù)據(jù)操作的具體實(shí)現(xiàn)。數(shù)據(jù)層則分成移動數(shù)據(jù)庫SQLite及部署在后臺考勤服務(wù)器端的MySQL。其中,MySQL數(shù)據(jù)庫通過Web Service方式與業(yè)務(wù)邏輯層進(jìn)行數(shù)據(jù)交互,而SQLite輕量級數(shù)據(jù)庫則通過Android類庫被各個應(yīng)用程序組件調(diào)用。圖4為客戶端的整體模型結(jié)構(gòu)。
運(yùn)行考勤軟件時,手機(jī)會自行啟動位置模塊,定位并發(fā)送數(shù)據(jù)到云服務(wù)器,與數(shù)據(jù)庫中的位置信息進(jìn)行對比,進(jìn)而完成定位。Android平臺是一個非常適合提供LBS應(yīng)用服務(wù)的平臺,LBS由移動通信網(wǎng)絡(luò)和計算機(jī)網(wǎng)絡(luò)結(jié)合而成[10],兩個網(wǎng)絡(luò)之間通過網(wǎng)關(guān)實(shí)現(xiàn)交互。移動終端通過移動通信網(wǎng)絡(luò)發(fā)出請求,經(jīng)過網(wǎng)關(guān)傳遞給LBS服務(wù)平臺;服務(wù)平臺根據(jù)用戶請求和用戶當(dāng)前位置進(jìn)行處理,并將結(jié)果通過網(wǎng)關(guān)返回給用戶,用戶從Android端登錄認(rèn)證。進(jìn)行簽到時,學(xué)生在課前1分鐘根據(jù)系統(tǒng)中課程表對應(yīng)顏色塊完成相應(yīng)課程的簽到工作,還可由任課教師發(fā)布此次課程簽到圖形或顏色方便完成簽到。系統(tǒng)手機(jī)終端運(yùn)行部分效果圖如圖5所示;查看考勤情況界面如圖6所示。
圖5 手機(jī)端登錄界面
另外,為方便班主任和輔導(dǎo)員查課,系統(tǒng)還提供了查課功能,能實(shí)時了解本班今天實(shí)際出勤情況。基于云計算的實(shí)現(xiàn),提供了移動用戶在云平臺存儲和處理數(shù)據(jù)的服務(wù)[11],學(xué)生只需在手機(jī)上安裝一個考勤軟件,就可以隨時隨地將位置傳到云端,并與事先設(shè)置的考勤地點(diǎn)和考勤時間進(jìn)行對比,從而判斷出是否是有效的考勤,教師也可隨時查詢云端考勤記錄。
服務(wù)器端的設(shè)計同樣采用了MVC框架。視圖層是面向用戶的界面顯示層,主要通過JSP文檔實(shí)現(xiàn),并運(yùn)用CSS樣式進(jìn)行頁面統(tǒng)一設(shè)計,規(guī)范布局,使可視化效果更好。業(yè)務(wù)邏輯層中,在作為控制器的Servlet中接收J(rèn)SP傳送來的請求,并根據(jù)JSP的請求生成JavaBean的實(shí)例,對MySQL數(shù)據(jù)庫進(jìn)行處理[12]。數(shù)據(jù)層是服務(wù)器端的核心,幾乎所有對數(shù)據(jù)庫的操作都在該層進(jìn)行。系統(tǒng)采用JDBC技術(shù)完成數(shù)據(jù)操作,服務(wù)器接收瀏覽器的HTTP數(shù)據(jù)請求,在Servlet接收到請求后,利用JDBC提供的標(biāo)準(zhǔn)API對數(shù)據(jù)庫進(jìn)行操作,并執(zhí)行相應(yīng)的SQL語句,最后將結(jié)果返回給用戶[13]。
云計算是并行計算、分布式計算和網(wǎng)格計算的發(fā)展,因其具有的超大規(guī)模、虛擬化、高可靠性、通用性、按需服務(wù)及廉價等諸多優(yōu)勢,往往成為開發(fā)者推廣應(yīng)用的首選[14]。將系統(tǒng)部署到云端,不僅意味著用戶可以隨時隨地訪問數(shù)據(jù),還使得應(yīng)用的優(yōu)化升級變得更加方便安全。由于云計算具有存儲方便、安全等特征,再加上手機(jī)客戶端軟件的優(yōu)勢,可以很容易地集成巡更、請假、通訊錄等功能。百度開放云平臺擁有較多的功能、輕應(yīng)用等,也有開發(fā)者服務(wù),在申請開發(fā)者賬號后,將系統(tǒng)及數(shù)據(jù)庫部署到云端,并設(shè)置了三級域名,通過SVN實(shí)現(xiàn)應(yīng)用代碼的管理。運(yùn)行服務(wù)器端應(yīng)用,根據(jù)權(quán)限登入系統(tǒng),系統(tǒng)主要功能有在線考勤、班主任查勤、賬號管理。
借助強(qiáng)大的云計算技術(shù),不需要維護(hù)任何服務(wù)器,只需要簡單地上傳應(yīng)用程序到百度云BAE中,BAE就可以提供隨時隨地的共享服務(wù)。這樣將系統(tǒng)連同數(shù)據(jù)庫一起部署到云端,結(jié)合云的高效安全,簡單易用,真正實(shí)現(xiàn)了系統(tǒng)的實(shí)時服務(wù)。
通過介紹一種基于Android的智能云考勤系統(tǒng)的實(shí)現(xiàn)方案,對系統(tǒng)的總體設(shè)計及數(shù)據(jù)庫的設(shè)計進(jìn)行論述,并給出了可行的設(shè)計方案;同時介紹了客戶端及服務(wù)器端的設(shè)計思路,提出將應(yīng)用部署到云端的實(shí)行方案;介紹了系統(tǒng)的實(shí)現(xiàn)環(huán)境。系統(tǒng)的設(shè)計是基于當(dāng)下流行的開發(fā)語言Java,客戶端采用市場占有率高的Android系統(tǒng)為開發(fā)平臺,服務(wù)器端在集成了JSP運(yùn)行環(huán)境的Eclipse中實(shí)現(xiàn),并在本機(jī)及云端通過測試,證實(shí)了其設(shè)計方案的可行性。
[1] Mednieks Z,Dornin L,Meike G B,et al.Programming Android [M].[s.l.]:O’Reilly Media,2011.
[2] 吳亞峰,蘇亞光.Android應(yīng)用案例開發(fā)大全[M].北京:人民郵電出版社,2011.
[3] Ostrander J,劉文斌.Android UI基礎(chǔ)教程[M].北京:人民郵電出版社,2012.
[4] Conder S,Darcey L.Android移動應(yīng)用開發(fā)從入門到精通[M].北京:人民郵電出版社,2010.
[5] Ferraro R,Aktihanoglu M.Location-aware application[M].[s. l.]:Manning Publications,2011.
[6] 陳霄凱,劉明輝.基于Google Maps的通用定位服務(wù)平臺的開發(fā)研究[J].計算機(jī)技術(shù)與發(fā)展,2011,21(11):215-218.
[7] 顧 寧,劉家茂,柴曉路.Web Services原理與研發(fā)實(shí)踐[M].北京:機(jī)械工業(yè)出版社,2006.
[8] 丁智斌,石浩磊.關(guān)系數(shù)據(jù)庫設(shè)計與規(guī)范化[J].計算機(jī)與數(shù)字工程,2005,33(2):114-116.
[9] 郝進(jìn)義.數(shù)據(jù)庫設(shè)計規(guī)范及設(shè)計技巧研究[J].計算機(jī)光盤軟件與應(yīng)用,2012(12):176-177.
[10]顧 聰,陳益強(qiáng),劉軍發(fā),等.基于Android平臺的室內(nèi)LBS系統(tǒng)設(shè)計與實(shí)現(xiàn)[J].計算機(jī)工程與設(shè)計,2012,33(1):396 -401.
[11]Fan Xiaopeng.A survey of mobile cloud computing[J].ZTE Communications,2011,9(1):4-8.
[12]Liu Chien-Hung.Data flow analysis and testing of JSP-based Web applications[J].Information and Software Technology,2006,48(12):1137-1147.
[13]王玉英.基于JSP的MySQL數(shù)據(jù)庫訪問技術(shù)[J].現(xiàn)代計算機(jī),2010(14):67-70.
[14]方 巍,文學(xué)志,潘吳斌,等.云計算:概念、技術(shù)及應(yīng)用研究綜述[J].南京信息工程大學(xué)學(xué)報:自然科學(xué)版,2012,4 (4):351-361.
Design and Implementation of Cloud Attendance System Based on Android
FANG Wei,SHAN Ying-ying,ZHANG Jun-jie
(School of Computer and Software,Nanjing University of Information Science&Technology,Nanjing 210044,China)
Students’attendance is an important part of the university teaching management.At present,many colleges and universities are mostly using the traditional manual way of attendance,which has these problems such as the error-prone,low efficiency,poor sharing,omission,off-job and other issues.With the advent of the mobile Internet era,it needs to find more scientific and advanced solutions.To this aim,an intelligent cloud attendance system based on Android has been developed.It is based on Baidu cloud platform and Baidu Map service,using the GPS technology and the Android mobile development framework with SQLite database and MySQL relational database. In addition,it also provides accurate Location Based Service(LBS)for positioning attendance service.The system has already been in the application.Through the system,it is not only convenient for students to use,but also for teachers and staff to manage the students’attendance easily and efficiently whenever and wherever.So,the system has greatly made the teaching management work more scientific and efficient.
student attendance system;Android;cloud computing;location based service
TP302
A
1673-629X(2016)09-0061-04
10.3969/j.issn.1673-629X.2016.09.014
2015-08-01
2015-12-09< class="emphasis_bold">網(wǎng)絡(luò)出版時間:
時間:2016-08-23
全國大學(xué)生創(chuàng)新實(shí)踐訓(xùn)練計劃項(xiàng)目(201410300026)
方 巍(1975-),男,副教授,碩導(dǎo),博士,CCF高級會員,研究方向?yàn)闅庀笮畔⑻幚?、?shù)據(jù)挖掘和云計算等;單瀅瀅(1993-),女,碩士研究生,研究方向?yàn)樵朴嬎恪?/p>
http://www.cnki.net/kcms/detail/61.1450.tp.20160823.1112.018.html