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