曾青松 郭盛煌
摘要:教師工作量管理是整個教學(xué)信息管理系統(tǒng)的核心和基礎(chǔ)。面對種類與數(shù)量繁多的數(shù)據(jù)和報表,手工處理方式已經(jīng)很難跟上現(xiàn)代化管理的步伐。設(shè)計開發(fā)了一套教師工作量管理系統(tǒng),快速地完成與教師工作量有關(guān)的各項數(shù)據(jù)統(tǒng)計工作,解決計算方法繁雜、工作效率低的問題,推動工作量管理更好的發(fā)展。
關(guān)鍵詞: 教學(xué)工作量;需求分析;教務(wù)管理;系統(tǒng)分析;Web服務(wù)
中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2016)13-0021-02
Abstract: Teaching workload management is the core task of teaching information management system. To handle a large amount of data and reports. It is very difficult to keep up with the modernization step with manual operation. This paper designed a teaching workload management system, which can quickly collect all data related to teachers' workload statistics work. It can promote the development of the workload management.
Key words: teacher workload; functional requirement; teaching management; system analysis; web service
1 背景
教師工作量管理是整個教學(xué)信息管理的核心和基礎(chǔ)[1-2],傳統(tǒng)的教學(xué)部門對工作量的統(tǒng)計一般采取Excel表格人工統(tǒng)計[3],這種方式雖然靈活,但是收集數(shù)據(jù)過程復(fù)雜,容易出錯。并且對于歷史數(shù)據(jù)查詢不方便,對教師工作量沒有有效的管理和統(tǒng)計分析,不能對課程安排做出合理的決策指導(dǎo)。
結(jié)合我校多年來的教務(wù)管理工作中教師工作量統(tǒng)計的實踐經(jīng)驗,開發(fā)了教學(xué)工作量統(tǒng)計分析系統(tǒng),推動了教師工作量管理更好的發(fā)展。系統(tǒng)能準(zhǔn)確快速地完成與教師工作量有關(guān)的各項數(shù)據(jù)統(tǒng)計工作,解決計算方法繁雜、工作效率低的問題。
2 系統(tǒng)需求分析
一直以來,我校教師教學(xué)工作量的統(tǒng)計采用任課教師自己填報,經(jīng)各系院教學(xué)秘書核對及主管領(lǐng)導(dǎo)審核后提交至教務(wù)處,教務(wù)處審核后存檔并提交至學(xué)院人事處核算課酬。在這個過程的每一個環(huán)節(jié)中,工作量均采用手工計算,教師要記住繁雜的計算公式,還要統(tǒng)計每年的實際工作量,很顯然,這種采用人工方式計算教師工作量不僅費時費力,而且很容易在統(tǒng)計過程中出錯,許多老師也多次呼吁能盡快改變目前這種手工計算教學(xué)工作量的方式。
根據(jù)我校教學(xué)工作量管理的實際流程及一些特殊要求設(shè)計并開發(fā)出教師教學(xué)工作量管理系統(tǒng),解決教師教學(xué)工作量管理的實際問題,系統(tǒng)的總體功能需要與現(xiàn)有的教務(wù)系統(tǒng)對接,獲取教師的工作量原始數(shù)據(jù),還需要與人事管理系統(tǒng)對接,輸出工作量統(tǒng)計數(shù)據(jù)用于核算課酬。教師工作量管理系統(tǒng)的功能結(jié)構(gòu)如圖1所示。
3 系統(tǒng)設(shè)計
3.1 系統(tǒng)實現(xiàn)技術(shù)
教師工作量管理系統(tǒng)的整體架構(gòu)采用B/S結(jié)構(gòu),教師客戶端支持使用手機APP和微信訪問,教務(wù)處和系部管理端使用瀏覽器訪問。在調(diào)研現(xiàn)有教務(wù)系統(tǒng)功能的基礎(chǔ)上,通過WebService實現(xiàn)了與現(xiàn)有的教務(wù)系統(tǒng)的對接[2],對現(xiàn)有系統(tǒng)的功能進行封裝[4,5],提供教師基本工作量原始數(shù)據(jù)的查詢,包含排課信息、調(diào)停課信息等。
根據(jù)學(xué)校實際工作的需求,對教師參與學(xué)校公益性工作量進行記錄和統(tǒng)計,方便計算公益分。教師用戶手機APP用戶界面如圖2所示。
3.1.1 用戶訪問控制機制
信息系統(tǒng)的開發(fā)已經(jīng)變得越來越簡單,但是每一次開發(fā)有很多的功能都是相同的,如訪問權(quán)限控制。對一個多用戶應(yīng)用系統(tǒng)而言,系統(tǒng)的安全訪問控制是必需的,系統(tǒng)的安全訪問控制一般是通過用戶認證和用戶權(quán)限管理來實現(xiàn)。目前大致有三種安全模型:訪問矩陣、基于角色的訪問控制模型和多級模型[6]。系統(tǒng)采用基于角色的訪問控制(RBAC-Role based access control),這些基礎(chǔ)功能由OpenCenter框架提供,簡化了編程工作,加速了項目實施的進度。
3.1.2 服務(wù)端實現(xiàn)技術(shù)
服務(wù)端采用PHP+MySQL,具體使用ThinkPHP 3.2.3作為開發(fā)框架。ThinkPHP是一個快速、簡單的基于MVC和面向?qū)ο蟮妮p量級PHP開發(fā)框架,遵循Apache2開源協(xié)議發(fā)布,為簡化編程,選擇基于ThinkPHP的開源快速開發(fā)框架OpenSNS,OpenCenter(http://www.opensns.cn/)是OpenSNS的基礎(chǔ),以ThinkPHP為基礎(chǔ),實現(xiàn)了應(yīng)用程序開發(fā)的基本的通用功能,提供了注冊登錄、頭像裁剪、單點登錄、Auth授權(quán)、權(quán)限管理、擴展資料管理、等級頭銜、自定義積分管理、用戶行為日志機制、模塊裝卸、插件機制。OpenCenter使開發(fā)人員只需要專注于業(yè)務(wù)系統(tǒng)的開發(fā)。
3.1.3 客戶端實現(xiàn)技術(shù)
PC版本的客戶端采用HTML5+jQuery,采用Ajax方式遠程調(diào)用統(tǒng)一的后端API方式實現(xiàn),css框架使用Bootstrap 3。
教師客戶端APP采用DCloud(http://dcloud.io/)的移動用戶界面框架(Mobile User Interfac, MUI)。MUI是一套基于HTML 5開發(fā)移動APP的用戶界面程序,可以方便開發(fā)出高性能App的框架,也是目前最接近原生App效果的框架,支持在線方式打包APP。它提供了豐富的APP開發(fā)常用的界面控件,并且對手機瀏覽器進行優(yōu)化。借助于功能強大的HTML5 Plus模塊,使得HTML5開發(fā)的APP在流行配置的手機上能夠流暢地運行。開發(fā)出來的APP能夠同時支持安卓和IOS系統(tǒng),與開發(fā)原生的APP相比,節(jié)約了大量的時間,降低了程序開發(fā)的難度和維護的成本。經(jīng)過少量的修改或者交叉編譯方式可以快速的支持微信公眾號應(yīng)用。
3.2 系統(tǒng)接口設(shè)計
根據(jù)系統(tǒng)的功能需求,系統(tǒng)的客戶端包含了傳統(tǒng)的PC端、移動客戶端APP(支持安卓和IOS系統(tǒng))以及微信公眾號應(yīng)用。為提高系統(tǒng)的可擴展性和降低客戶端的維護工作量,所有客戶端調(diào)用統(tǒng)一的API。API的設(shè)計遵循以下原則:
1)提供密鑰和token,確保數(shù)據(jù)不被篡改,系統(tǒng)拒絕接受偽造的訪問請求。
2)讀數(shù)據(jù)用HTTP get請求,修改數(shù)據(jù)用HTTP post請求。
3)提供統(tǒng)一的錯誤碼。每個數(shù)字代表一種錯誤。錯誤分系統(tǒng)錯誤和業(yè)務(wù)邏輯錯誤,系統(tǒng)錯誤碼統(tǒng)一從4001開始編號,業(yè)務(wù)邏輯錯誤統(tǒng)一從5001開始編號。
4)接口返回值格式統(tǒng)一結(jié)構(gòu),用JSON格式輸出,包含狀態(tài)碼(錯誤碼),錯誤信息和業(yè)務(wù)數(shù)據(jù)三個基本域,如果程序執(zhí)行成功返回固定狀態(tài)碼“200”,如果出錯則返回系統(tǒng)錯誤碼或者業(yè)務(wù)錯誤碼。例如:{code:200, message:成功獲取用戶數(shù)據(jù), data:{uid:101, username:admin,…}}。
3.3 系統(tǒng)API訪問機制
為提高系統(tǒng)的安全性,每個用戶只能查詢自己的數(shù)據(jù),并且為了避免每次請求都進行身份驗證和防止數(shù)據(jù)被篡改,系統(tǒng)在用戶初次訪問時候進行身份驗證,密碼通過MD5算法轉(zhuǎn)換后發(fā)送到服務(wù)器,驗證身份通過之后獲取一個表明身份的token,服務(wù)端緩存相應(yīng)的用戶ID和登錄時間數(shù)據(jù),實現(xiàn)'a'=>b 和'b'=>a格式的緩存,也就是說可以根據(jù)token查詢用戶id和登錄時間或者根據(jù)用戶id查詢token數(shù)據(jù)。另外為提高安全新,采用類似于微信的安全機制,產(chǎn)生一個32位的隨機字符串用于加密生成token。生成token的核心代碼如下:
private function getToken($uid, $appid, $appsecret, $cache_time=7200)
{
$key = $appid . '_' . $appsecret._.$uid;//或者自己定義一個規(guī)則
$nonce = $this->createNoncestr(32);//產(chǎn)生32位的隨機字符串
$tmpArr = array($nonce, $appid, $appsecret);
sort($tmpArr, SORT_STRING);
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);
//這里做了緩存 'a'=>b 和'b'=>a格式的緩存
S($key, $tmpStr, $cache_time);//$cache_time=7200
S($tmpStr, $key, $cache_time);
S($key . '_uid', $uid, $cache_time);
return $tmpStr;//返回生成的TOKEN
}
其他的API調(diào)用的時候需要傳遞ID和獲取到的token,服務(wù)器端每次請求要驗證是否是用戶本人的請求,確保數(shù)據(jù)不被非法訪問。例如,獲取用戶信息的接口請求:http://xxx/api.php/getUserInfo/uid/101/token/b1b7bec6c9583a40b0d84fafa919ea357679068e,其中xxx表示服務(wù)器部署的路徑,token在用戶登錄成功的時候返回到客戶端,緩存起來方便其他的API調(diào)用。如果用戶使用現(xiàn)有的token調(diào)用api的時候出現(xiàn)訪問超時或者用戶身份與獲取token的用戶身份不一致,服務(wù)端拒絕訪問,返回4001錯誤,客戶端要對每一次的API請求檢查返回的錯誤代碼,如果接收到4001錯誤則跳轉(zhuǎn)到登錄頁面要求用戶重新登錄。
4 結(jié)束語
教務(wù)管理工作是高校教學(xué)管理的一個基本功能,目前實現(xiàn)了教學(xué)工作量的統(tǒng)計這一特定需求,后續(xù)還將繼續(xù)完善該系統(tǒng),尤其是教師客戶端的功能,增加日常教務(wù)信息的查詢和學(xué)生考核等方面的功能,使教師能夠通過手機訪問現(xiàn)有教務(wù)系統(tǒng)的主要功能,提高教師辦公效率。
參考文獻:
[1] 黃文武, 傅強, 羅卓筆. 高校教師教學(xué)工作量管理系統(tǒng)設(shè)計與實現(xiàn)[J]. 中國教育信息化·高教職教, 2014(8): 65-66.
[2] 田林琳, 洪偉. WebService在教學(xué)工作量管理系統(tǒng)中的應(yīng)用研究[J]. 電腦知識與技術(shù), 2015, 11(26).
[3] 鄒俊. Excel在實踐教學(xué)工作量統(tǒng)計中的應(yīng)用[J]. 智能計算機與應(yīng)用, 2014, 4(6): 112-113.
[4] 陳懿煒. 云計算環(huán)境下一站式教務(wù)管理系統(tǒng)的研究——以開放大學(xué)為例[J]. 中國成人教育, 2015(3): 28-30.
[5] 閻琦, 韓建群, 夏穎. 基于UML的高校教學(xué)日常管理系統(tǒng)的建模與實現(xiàn)[J]. 計算機技術(shù)與發(fā)展, 2014(4): 196-199.
[6 曾青松. 一種基于插件的管理信息系統(tǒng)框架的實現(xiàn)[J]. 番禺職業(yè)技術(shù)學(xué)院學(xué)報, 2008, 7(3): 56-59.