蔡利軍 周益飛
[摘 要] 以Web Service替代數據集成的數字離校系統,是高校畢業生離校工作的迫切需求。本文以本科畢業生的數字化離校工作為背景,介紹了武漢大學基于Web Service的數字離校系統設計理念及系統實現,并重點描述了系統建設過程中的特色解決方案。
[關鍵詞] 數字離校;數據集成;Web Service
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2018. 05. 062
[中圖分類號] G647;TP311.52 [文獻標識碼] A [文章編號] 1673 - 0194(2018)05- 0146- 04
0 引 言
作為全國最大的高校之一,武漢大學每年有近8 000本科生畢業離校,雖然畢業生離校工作已經采用在線系統辦理,離校系統通過數據集成平臺的支持,從不同業務系統中抽取業務數據,實時將各個業務系統、業務信息集成到離校系統中。但系統同步各業務部門的數據十分頻繁,離校峰值期間也不堪重負,經常導致數據更新不及時。因此,如何提升畢業生數字離校的效率和體驗是一個亟待解決的問題。隨著武漢大學數字化校園建設的推進,信息化水平持續提高,各個業務部門的應用系統上線運行,建設數字離校系統的新思路就是基于Web Service來替代數據集成,并采用更適合高并發業務的平臺,下面就為大家介紹武漢大學數字離校系統的設計與實現。
武漢大學畢業生離校工作涉及財務部、圖書館、水電中心及各學院等多個部門,以往使用Oracle的 ODI集成工具完成各業務系統數據的集成。ODI(Oracle Data Integrator),是Oracle公司推出的異構數據遷移工具,通過一致性對不同數據源的變化數據捕獲,從而完成近乎實時的數據集成工作。由于使用了中間共享庫與業務雙向聯系的方式,因此從數據源創建到流向最終的數據使用信息系統,整個數據信息的流轉過程一般需要2個小時才能夠完成,在目前武漢大學的數據集成系統中,總共有幾百個同步Agent在進行數據的同步工作,一般的數據同步間隔為每小時一次,對于部分實時性要求高的數據則根據實際業務需要達到分鐘級同步。采用數據集成的方式有很多問題和缺陷,根據往年畢業生的相關數據統計,我們發現僅有不到5%的畢業生在畢業前存在欠費的現象,而超過95%的畢業生沒有欠費,這種同步所有數據方式不僅浪費時間,而且成倍地增加了ODI的工作量,類似的現象在其他離校辦理環節也很普遍,最終的結果是造成中心數據庫負荷超載,因此我們迫切需要改變這種現狀。基于Web Service的數字離校系統以調用各業務系統提供的接口來替代數據集成,能夠更有效融合各部門業務系統的數據,讓畢業生能夠在線實時完成離校手續的辦理,提高畢業離校手續的辦理效率,同時提升畢業生離校體驗。
1 數字離校系統建設
1.1 數字離校系統的設計
傳統的數字離校系統通過共享數據庫平臺,利用ODI實現與教務數據庫、圖書館數據庫、財務數據庫及水電中心數據庫的數據集成。數字離校系統所需的畢業生名單抽取自教務數據庫,圖書借閱信息抽取自圖書館數據庫,學費數據抽取自財務數據庫,住宿數據抽取自宿舍管理系統數據庫。
基于Web Service的數字離校系統架構如圖1所示,系統采用B/S模式,用戶權限分為畢業生、院系審核員及各級領導。畢業生通過系統查看各項離校手續的在線辦理;院系審核員負責最后在線審批畢業生的離校手續;院系領導可以實時查詢離校手續辦理的統計數據,便于相關工作的調整和部署。同時,數字離校系統通過Web Service接口調用財務、圖書館、住宿、空調卡數據,最終對涉及畢業生離校工作的現有業務系統進行有機整合。
1.2 數字離校系統的實現
為了使畢業生能夠自主選擇離校手續辦理的先后順序,系統將除學院領證外的所有環節設計為可并行辦理,系統的流程如下:
(1)繳清費用環節主要是確認畢業生是否欠費,系統中可查看欠費明細:學費、住宿費、學分學費等,如有欠費請到財務部繳清,無欠費系統將自動把本環節置為“已辦理”。
(2)如果畢業生無欠書欠費(研究生還需在圖書館提交論文),該環節顯示為“未辦理”。畢業生在離校系統中自注銷圖書證后,系統將自動把本環節置為“已辦理”,如果有欠書欠費情況,需到圖書館或所在院系資料室辦理歸還圖書、繳清欠費等手續。
(3)空調卡環節對于沒有借空調卡的畢業生,系統將提示無需辦理;而對有的學生則在其歸還空調卡后,由業務操作人員在空調卡系統中確認其“已通過”,完成空調卡環節的手續辦理。
(4)畢業生到樓棟管理員處歸還鑰匙(或支付押金)和繳清電費后,可辦理退宿手續。公寓管理辦的業務操作人員將離校系統中的該環節狀態置為“已通過”,完成公寓退宿手續的辦理,未住宿的畢業生不需辦理此項。
(5)畢業生在完成前面的所有手續辦理后,便可到學院領取畢業相關證書,最終完成畢業離校手續的辦理。
上述辦理環節在具體實現過程中,全部基于Web Service接口獲取離校數據的解決方案,是我校數字離校系統中最具特色的部分,下面就分別介紹各環節調用Web Service接口方式。
2 Web Service接口調用方式
2.1 財務數據的“實時”同步
由于高校財務系統屬于相對獨立的系統,出于安全的考慮,一般不允許連接外網,也不允許與其他系統集成,因此,離校系統無法直接讀取財務系統數據。要確保畢業生辦理離校手續的連貫性,就必須保證財務數據的實時同步。為了解決因財務系統封閉性而造成的數據同步問題,傳統的方案是設置一臺財務前置機作為中轉,以此實現財務數據的實時同步。財務前置機數據庫與財務數據庫采用專用的同步程序,以數據庫增量的方式,每60秒進行一次數據同步。每次同步完成后,前置機數據庫立即將增量數據寫入共享數據庫。最后共享數據庫通過ODI工具,以60秒一次的頻率將更新的財務數據同步至離校數據庫。為了盡可能達到實時同步的要求,通過Web Service接口直接讀取共享數據庫中畢業生的欠費狀態,在確認無欠費后便可立即辦理后續離校手續,無需等待,極大地方便了畢業生。
2.2 圖書館環節的在線自主辦理
在傳統離校辦理方式中,圖書館環節的通常做法是:由學校劃定統一的截止日期,開啟圖書借閱狀態查詢,如果沒有欠書欠費則注銷畢業生的圖書借閱功能,若此截止日期過早,部分仍有借閱需求的畢業生將失去借閱機會;而若截止日期過晚,部分需要提前離校的學生又無法辦理圖書館離校手續。為了解決這個問題,我們在離校系統的圖書館環節設計了一個人性化的解決方案。圖書館系統可提供Web Service系統接口,允許授權的系統利用該接口來查詢和改變圖書館系統中的用戶狀態,因此,離校系統就通過該接口與圖書館系統實現系統集成。該接口的調用參數為畢業生學號,接口返回的數據包括借閱狀態code(正常或已注銷)和message(欠書欠費信息)。
調用接口地址為:http://apps.lib.whu.edu.cn/aleph/bor_check.asp?bor_id=XXXXXXXX
參數id為學號,返回值為JSON對象,示例{"code":"0","message":"303_2:狀態正常,已辦理圖書館離校手續。"}
其中code為返回值,message為說明信息,code值有如下類別:
0: 狀態正常,已辦理圖書館離校手續。
1: 狀態正常,但還未辦理圖書館離校手續(可以到圖書館或網上自助辦理圖書館離校手續)。
2:存在欠費/欠書以及其他限制情況,不能辦理圖書館離校手續。
3: 論文未提交, 不能辦理圖書館離校手續。
-1:證號錯誤。
-2:IP地址不在調用范圍內。
-3:其他系統錯誤。
畢業生可直接在離校系統中關閉圖書借閱功能,完成圖書館手續的辦理,且可在一個較長的時間段內自由選擇辦理時間。當畢業生在離校系統中進行圖書館手續的辦理時,離校系統通過Web Service接口查詢圖書館系統中該畢業生的狀態,若查詢到存在欠費或欠書,會在離校系統中提示該畢業生歸還欠書、結清欠費;若沒有欠書和欠費,離校系統會詢問是否立即關閉圖書借閱功能,此時,該生可根據自己的需求來自主選擇暫不注銷或立即注銷。最終,當該畢業生自主關閉圖書借閱功能后,圖書館的離校手續便辦理完結。
圖書館離校手續的在線自主辦理,使畢業生可在允許的時間段內自由決定關閉圖書借閱功能的時間,有效解決因學校統一關閉而造成的“過早”和“過晚”問題,顯得非常人性化。
2.3 退宿環節的在線辦理
調用學生是否住宿Web Service接口地址為:
http://mydorm.whu.edu.cn//appdm/rest/api/accommodation/resident_stay_info/2007xxxx
其中2007xxxx為學號,返回JSON格式數據示例如下:
{"publicUserSn":"2007xxxx","publicUserName":"孫XX","isStayIn":true,"bunkInfo":"醫學部-宿舍321-4號床"}
參數publicUserSn為學號,publicUserName為姓名,isStayIn為是否住宿狀態(true為住宿中,false為未住宿),bunkInfo為床位信息。
2.4 空調卡系統接口調用
空調卡系統由我們幫助水電中心開發,為了實現Web Service接口功能,我們增加了一個Server文件提供Web Service服務,同時用client文件調用該服務,空調卡系統Web Service接口地址為:http://it.whu.edu.cn/ktk/server.php
程序用PHP編寫,通過ktkws(¥xh)獲取空調卡狀態后,實現Web Service功能的語句如下:
¥server = new SoapServer(null,array('uri' => 'http://soap/','location'=>'http://it.whu.edu.cn/ktk/server.php'));
¥server->setClass('ktk');
¥server->handle();
提供學號,調用服務獲取狀態的語句如下:
¥soap = new SoapClient(null, array('location'=>'http://it.whu.edu.cn/ktk/server.php','uri' =>'http://soap/'));
¥xh='2007xxxx';
echo ¥soap->ktkws(¥xh);
ktkws(¥xh)返回1表示“空調卡未歸還”,0表示“空調卡已歸還”,如果需要提供JSON格式的數據給其他 類型程序調用,可以用json_encode函數格式化變量,然后通過html的header功能輸出返回變量。
3 應用效果
基于Web Service的特色解決方案,使我校的數字離校系統從更深的層次理解了用戶需求,利用先進的信息化技術對原有業務流程進行了重構,全面實現了畢業生離校工作的信息化,徹底改變了畢業生離校工作的落后局面。與傳統數據集成的離校辦理方式相比,用戶體驗度得到了質的提高。以退宿環節為例,在采用傳統離校辦理方式時,所有畢業生在宿舍現場辦理退宿后,需等待半個小時,狀態變化才能在離校系統中反映,而改用Web Service接口調用住宿系統數據后,退宿狀態可以實時反映在離校系統中,極大地方便了畢業生離校手續的辦理。由于采用Web Service接口方式導致離校系統程序設計極為簡潔,我們只花了半個月的時間獨立設計程序,節省了大量資金投入。離校期間兩個工作人員輕松應對離校高峰,使用戶深刻感受到了良好的信息化服務,取得了圓滿的應用效果,達到了系統預期的建設目標。
武漢大學基于Web Service的數字離校系統于2016年6月正式投入使用,至今已順利完成兩屆畢業生的數字化離校工作。在系統開發過程中,我們同時利用“大數據”的建設思想進行數據挖掘,增加了對畢業生離校辦理情況進行按專業的實時統計功能。從實際的應用效果來看,該系統基本滿足了我校畢業生離校工作的需求,從根本上提高了畢業生離校工作的效率,有效減輕了畢業生和業務部門的負擔。基于Web Service的數字離校系統建設,很好地體現了教育信息化所承載的服務屬性。
主要參考文獻
[1]朱浩,左志宏,顏 凱,等.電子科技大學數字離校系統建設實踐[J].中國教育信息化,2015(5):86-89.
[2]閆曉弟,李娟,李一鳴,等.讀者更新WebService與校園自助離校系統——以西安交通大學為例[J].中國現代教育裝備,2012(21):69-71.
[3]田鵬,吳慶杰,陳翼.基于數據集成的畢業工作服務管理系統的設計與實現[J].實驗技術與管理,2011(5):316-319.
[4]楊帆,楊潔,李一鳴.基于SOA架構的自助離校系統設計與實現[J].中山大學學報:自然科學版,2009(s1):210-212.