方 巍,單瀅瀅,張俊杰
(南京信息工程大學計算機與軟件學院,江蘇南京 210044)
基于Android的云考勤系統(tǒng)設(shè)計與實現(xiàn)
方 巍,單瀅瀅,張俊杰
(南京信息工程大學計算機與軟件學院,江蘇南京 210044)
學生考勤工作是課堂教學管理的一個重要環(huán)節(jié)。目前,高校大多采用傳統(tǒng)手工的方式進行考勤,這種方式存在易出錯、效率低、共享性差、無法解決代考、脫崗等問題。隨著“移動互聯(lián)網(wǎng)”時代的來臨,迫切需要更科學先進的解決方案。為此,開發(fā)了一款基于Android的智能云考勤系統(tǒng),該系統(tǒng)基于百度云平臺和百度Map服務,利用GPS定位技術(shù),采用Android移動開發(fā)框架,借助SQLite輕量級數(shù)據(jù)庫及MySQL關(guān)系數(shù)據(jù)庫。同時,系統(tǒng)還提供精確的基于位置服務(LBS)的定位考勤服務。該系統(tǒng)在實際應用中不僅方便學生使用,而且方便教師和相關(guān)工作人員可以隨時隨地使用以了解學生的出勤情況,從而使教學管理更加科學和有效。
學生考勤系統(tǒng);Android;云計算;位置服務
隨著信息社會的日益發(fā)展,計算機技術(shù)成為當下必不可少的科技力量,其應用涉及的領(lǐng)域也越來越廣泛,人們的生活越來越離不開計算機應用技術(shù)的發(fā)展所帶來的便利。同時,以前很多只能在臺式計算機上運行的軟件系統(tǒng),也越來越掌上化、移動化。其中,重要的轉(zhuǎn)變就是手機軟件市場的發(fā)展,將很多應用功能濃縮到隨身攜帶的手機上。此外,4G網(wǎng)絡(luò)的廣泛應用也為移動應用部署到云端提供了更優(yōu)異的網(wǎng)絡(luò)環(huán)境。
學生考勤不僅是為了監(jiān)督學生上課出勤,督促學生完成課業(yè),同時也為學生在校安全提供了保障,減少意外事故的發(fā)生。雖然手機軟件數(shù)量越發(fā)龐大,但是對于學生考勤系統(tǒng)的開發(fā),在手機市場上還屬于比較新的概念。目前,就普通大學的隨堂考勤情況來看,教師大多還是采用傳統(tǒng)的手工考勤模式。這種模式,缺少數(shù)據(jù)管理以及實時傳遞機制,不利于考勤數(shù)據(jù)的實時管理與共享且存儲效率低。因此,開發(fā)出一款手機考勤管理系統(tǒng)、實現(xiàn)實時智能考勤具有一定的研究價值和意義。
文中基于Android的智能云考勤系統(tǒng)的實現(xiàn)展開論述,主要介紹了系統(tǒng)的總體設(shè)計、數(shù)據(jù)庫設(shè)計、服務器和客戶端設(shè)計、云端部署以及搭建環(huán)境等。
為滿足高校考勤的實際需求,系統(tǒng)主要分為兩大模塊,即部署到云端的服務器和客戶端。其中,云服務端租用百度云BAE,將核心服務端應用及數(shù)據(jù)庫封裝到云,實現(xiàn)數(shù)據(jù)的持久化,通過網(wǎng)絡(luò)通信可隨時隨地實現(xiàn)考勤數(shù)據(jù)的管理;客戶端主要是Android[1-4]手機端的功能實現(xiàn),根據(jù)LBS服務[5-6]定位模塊獲取手機位置,通過HTTP協(xié)議訪問云端數(shù)據(jù)庫并進行對比,匹配成功則進行相應操作,最終將數(shù)據(jù)傳送到云端。其工作流程圖如圖1所示。
服務端的設(shè)計主要為客戶端的數(shù)據(jù)訪問提供機制,分別在Android端采用C/S設(shè)計模式及瀏覽器端采用B/S設(shè)計模式。用戶不僅可以通過Android手機訪問數(shù)據(jù),也可以通過瀏覽器進行操作。為了更高效地操作考勤系統(tǒng),該系統(tǒng)設(shè)置了教師端和學生端兩種訪問權(quán)限,分別有不同的操作功能。其中,教師端可對全部考勤數(shù)據(jù)進行操作,學生端則只能操作個人考勤信息。另外,系統(tǒng)增設(shè)了管理員終端以管理用戶權(quán)限。圖2為系統(tǒng)功能模塊結(jié)構(gòu)。

圖2 系統(tǒng)功能結(jié)構(gòu)
具體來說,系統(tǒng)的基本功能包括:計算基站定位、基礎(chǔ)數(shù)據(jù)管理、考勤記錄檢索、組織機構(gòu)管理和權(quán)限控制等。具體的系統(tǒng)整體架構(gòu)如圖3所示。
(1)采用現(xiàn)有的百度云平臺,實現(xiàn)數(shù)據(jù)的實時存儲功能。
服務器借助云計算技術(shù),部署在云平臺上。主要包括Web Service[7]服務器、LBS服務平臺和學生數(shù)據(jù)庫三個子模塊。基于現(xiàn)有的百度云平臺、新浪云平臺,通過移動終端將大量的網(wǎng)絡(luò)資源統(tǒng)一起來,提供強勁的查詢處理能力和更快的服務器響應能力。
(2)Android客戶端模塊開發(fā)。
由在線考勤、考勤統(tǒng)計、信息匯總、賬號管理等模板組成。考勤的同時,手機會自行啟動位置模塊,定位并發(fā)送數(shù)據(jù)到云服務器,與數(shù)據(jù)庫中的位置信息進行比對,進而完成定位。
(3)用戶界面。
主要由用戶登錄界面、學生端主界面、教師端主界面等界面組成。在MVC設(shè)計模式的實現(xiàn)中,用戶界面主要用于界面顯示的實現(xiàn),直接面向用戶,是用戶對系統(tǒng)最直接的感受。
為了動態(tài)管理考勤數(shù)據(jù),需要設(shè)計一個合理規(guī)范的數(shù)據(jù)庫[8]。當下,數(shù)據(jù)庫的產(chǎn)品也有很多。MySQL數(shù)據(jù)庫因其開源、免費,同時又兼具簡單、靈活、支持多語言平臺等優(yōu)點,在中小型軟件設(shè)計中備受青睞。該系統(tǒng)采用MySQL數(shù)據(jù)庫對考勤數(shù)據(jù)進行管理。
針對高校考勤的實際情況,需要擬定用戶信息、課程信息、考勤信息三方面的表。用戶表主要記錄各種用戶的身份信息,包括自身id、姓名、密碼、性別、聯(lián)系方式等相關(guān)屬性;課程信息是表設(shè)計的重點,包括課程id、院系id、班級id、選課id、任課教師id以及學生id等具體屬性;考勤表需要包含的信息除了相關(guān)課程信息外,還需要有考勤情況操作時間等必要屬性。根據(jù)數(shù)據(jù)庫的規(guī)范化要求[2],可以將用戶表細分為:管理員表、教師表、學生表;將課程表細分為:學院表、班級表、課程表;考勤表記錄項。利用Power Designer軟件內(nèi)置的強大功能,可以根據(jù)上文構(gòu)建的PDM模型[9]自動生成該考勤系統(tǒng)的數(shù)據(jù)庫腳本,完成數(shù)據(jù)庫的代碼實現(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è)務邏輯層、數(shù)據(jù)層和視圖層分離。視圖層采用XML文件進行設(shè)計,主要有登陸界面、注冊界面、查詢界面,另外,根據(jù)登陸的權(quán)限,教師端可以訪問全部考勤信息界面、考勤數(shù)據(jù)管理界面等,學生端可以訪問個人信息界面、簽到界面等。業(yè)務邏輯層主要通過消息—活動機制(Intent-Activity)實現(xiàn)數(shù)據(jù)的傳遞和操作,并根據(jù)HTTP協(xié)議實現(xiàn)對云端服務器的通信訪問。數(shù)據(jù)層主要通過云服務端的訪問機制,在云端進行數(shù)據(jù)操作的具體實現(xiàn)。數(shù)據(jù)層則分成移動數(shù)據(jù)庫SQLite及部署在后臺考勤服務器端的MySQL。其中,MySQL數(shù)據(jù)庫通過Web Service方式與業(yè)務邏輯層進行數(shù)據(jù)交互,而SQLite輕量級數(shù)據(jù)庫則通過Android類庫被各個應用程序組件調(diào)用。圖4為客戶端的整體模型結(jié)構(gòu)。
運行考勤軟件時,手機會自行啟動位置模塊,定位并發(fā)送數(shù)據(jù)到云服務器,與數(shù)據(jù)庫中的位置信息進行對比,進而完成定位。Android平臺是一個非常適合提供LBS應用服務的平臺,LBS由移動通信網(wǎng)絡(luò)和計算機網(wǎng)絡(luò)結(jié)合而成[10],兩個網(wǎng)絡(luò)之間通過網(wǎng)關(guān)實現(xiàn)交互。移動終端通過移動通信網(wǎng)絡(luò)發(fā)出請求,經(jīng)過網(wǎng)關(guān)傳遞給LBS服務平臺;服務平臺根據(jù)用戶請求和用戶當前位置進行處理,并將結(jié)果通過網(wǎng)關(guān)返回給用戶,用戶從Android端登錄認證。進行簽到時,學生在課前1分鐘根據(jù)系統(tǒng)中課程表對應顏色塊完成相應課程的簽到工作,還可由任課教師發(fā)布此次課程簽到圖形或顏色方便完成簽到。系統(tǒng)手機終端運行部分效果圖如圖5所示;查看考勤情況界面如圖6所示。

圖5 手機端登錄界面
另外,為方便班主任和輔導員查課,系統(tǒng)還提供了查課功能,能實時了解本班今天實際出勤情況。基于云計算的實現(xiàn),提供了移動用戶在云平臺存儲和處理數(shù)據(jù)的服務[11],學生只需在手機上安裝一個考勤軟件,就可以隨時隨地將位置傳到云端,并與事先設(shè)置的考勤地點和考勤時間進行對比,從而判斷出是否是有效的考勤,教師也可隨時查詢云端考勤記錄。
服務器端的設(shè)計同樣采用了MVC框架。視圖層是面向用戶的界面顯示層,主要通過JSP文檔實現(xiàn),并運用CSS樣式進行頁面統(tǒng)一設(shè)計,規(guī)范布局,使可視化效果更好。業(yè)務邏輯層中,在作為控制器的Servlet中接收JSP傳送來的請求,并根據(jù)JSP的請求生成JavaBean的實例,對MySQL數(shù)據(jù)庫進行處理[12]。數(shù)據(jù)層是服務器端的核心,幾乎所有對數(shù)據(jù)庫的操作都在該層進行。系統(tǒng)采用JDBC技術(shù)完成數(shù)據(jù)操作,服務器接收瀏覽器的HTTP數(shù)據(jù)請求,在Servlet接收到請求后,利用JDBC提供的標準API對數(shù)據(jù)庫進行操作,并執(zhí)行相應的SQL語句,最后將結(jié)果返回給用戶[13]。
云計算是并行計算、分布式計算和網(wǎng)格計算的發(fā)展,因其具有的超大規(guī)模、虛擬化、高可靠性、通用性、按需服務及廉價等諸多優(yōu)勢,往往成為開發(fā)者推廣應用的首選[14]。將系統(tǒng)部署到云端,不僅意味著用戶可以隨時隨地訪問數(shù)據(jù),還使得應用的優(yōu)化升級變得更加方便安全。由于云計算具有存儲方便、安全等特征,再加上手機客戶端軟件的優(yōu)勢,可以很容易地集成巡更、請假、通訊錄等功能。百度開放云平臺擁有較多的功能、輕應用等,也有開發(fā)者服務,在申請開發(fā)者賬號后,將系統(tǒng)及數(shù)據(jù)庫部署到云端,并設(shè)置了三級域名,通過SVN實現(xiàn)應用代碼的管理。運行服務器端應用,根據(jù)權(quán)限登入系統(tǒng),系統(tǒng)主要功能有在線考勤、班主任查勤、賬號管理。
借助強大的云計算技術(shù),不需要維護任何服務器,只需要簡單地上傳應用程序到百度云BAE中,BAE就可以提供隨時隨地的共享服務。這樣將系統(tǒng)連同數(shù)據(jù)庫一起部署到云端,結(jié)合云的高效安全,簡單易用,真正實現(xiàn)了系統(tǒng)的實時服務。
通過介紹一種基于Android的智能云考勤系統(tǒng)的實現(xiàn)方案,對系統(tǒng)的總體設(shè)計及數(shù)據(jù)庫的設(shè)計進行論述,并給出了可行的設(shè)計方案;同時介紹了客戶端及服務器端的設(shè)計思路,提出將應用部署到云端的實行方案;介紹了系統(tǒng)的實現(xiàn)環(huán)境。系統(tǒng)的設(shè)計是基于當下流行的開發(fā)語言Java,客戶端采用市場占有率高的Android系統(tǒng)為開發(fā)平臺,服務器端在集成了JSP運行環(huán)境的Eclipse中實現(xiàn),并在本機及云端通過測試,證實了其設(shè)計方案的可行性。
[1] Mednieks Z,Dornin L,Meike G B,et al.Programming Android [M].[s.l.]:O’Reilly Media,2011.
[2] 吳亞峰,蘇亞光.Android應用案例開發(fā)大全[M].北京:人民郵電出版社,2011.
[3] Ostrander J,劉文斌.Android UI基礎(chǔ)教程[M].北京:人民郵電出版社,2012.
[4] Conder S,Darcey L.Android移動應用開發(fā)從入門到精通[M].北京:人民郵電出版社,2010.
[5] Ferraro R,Aktihanoglu M.Location-aware application[M].[s. l.]:Manning Publications,2011.
[6] 陳霄凱,劉明輝.基于Google Maps的通用定位服務平臺的開發(fā)研究[J].計算機技術(shù)與發(fā)展,2011,21(11):215-218.
[7] 顧 寧,劉家茂,柴曉路.Web Services原理與研發(fā)實踐[M].北京:機械工業(yè)出版社,2006.
[8] 丁智斌,石浩磊.關(guān)系數(shù)據(jù)庫設(shè)計與規(guī)范化[J].計算機與數(shù)字工程,2005,33(2):114-116.
[9] 郝進義.數(shù)據(jù)庫設(shè)計規(guī)范及設(shè)計技巧研究[J].計算機光盤軟件與應用,2012(12):176-177.
[10]顧 聰,陳益強,劉軍發(fā),等.基于Android平臺的室內(nèi)LBS系統(tǒng)設(shè)計與實現(xiàn)[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)代計算機,2010(14):67-70.
[14]方 巍,文學志,潘吳斌,等.云計算:概念、技術(shù)及應用研究綜述[J].南京信息工程大學學報:自然科學版,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
全國大學生創(chuàng)新實踐訓練計劃項目(201410300026)
方 巍(1975-),男,副教授,碩導,博士,CCF高級會員,研究方向為氣象信息處理、數(shù)據(jù)挖掘和云計算等;單瀅瀅(1993-),女,碩士研究生,研究方向為云計算。
http://www.cnki.net/kcms/detail/61.1450.tp.20160823.1112.018.html