文/洪丹丹 張晉安 徐墨 鎖志海
移動(dòng)微校園建設(shè)及關(guān)鍵技術(shù)探討
文/洪丹丹 張晉安 徐墨 鎖志海
隨著教育信息化的推進(jìn),高校越來越多地關(guān)注移動(dòng)微校園如何建設(shè)的話題。本文以西安交通大學(xué)移動(dòng)微校園建設(shè)為研究背景,分析了當(dāng)前校園移動(dòng)信息化面臨的挑戰(zhàn),提出以“輕應(yīng)用、碎服務(wù)、快響應(yīng)、多兼容”的理念構(gòu)建高等學(xué)校移動(dòng)微校園服務(wù)平臺,并利用kettle實(shí)現(xiàn)相關(guān)數(shù)據(jù)交換任務(wù),以輕量級json為數(shù)據(jù)接口標(biāo)準(zhǔn),打造集微教務(wù)、微生活、微財(cái)務(wù)、微就業(yè)于一體的移動(dòng)服務(wù)平臺,并對系統(tǒng)架構(gòu)、功能設(shè)計(jì)及數(shù)據(jù)交換等關(guān)鍵技術(shù)進(jìn)行了描述。
隨著各類移動(dòng)信息化技術(shù)的普及,利用原生App、跨平臺移動(dòng)App及HTML5等手段將校園傳統(tǒng)信息系統(tǒng)進(jìn)行移動(dòng)化,為師生提供便捷、快速、不受設(shè)備型號及地理位置限制的信息化服務(wù),成為越來越多高校的關(guān)注重點(diǎn)。以西安交通大學(xué)為例,由于校園用戶的移動(dòng)服務(wù)需求種類龐大,服務(wù)項(xiàng)目較多,給傳統(tǒng)校園信息平臺帶來諸多挑戰(zhàn):
1.傳統(tǒng)信息系統(tǒng)服務(wù)重,技術(shù)路線陳舊難改造。此類系統(tǒng)多以具有龐大數(shù)據(jù)對象的學(xué)生系統(tǒng),研究生系統(tǒng),教務(wù)選課系統(tǒng),一卡通系統(tǒng),財(cái)務(wù)系統(tǒng),科研項(xiàng)目管理系統(tǒng)等校園傳統(tǒng)核心業(yè)務(wù)系統(tǒng)為主。
2.移動(dòng)設(shè)備類型多,差別大,針對性開發(fā)壓力大。如針對安卓系統(tǒng)、iOS系統(tǒng)或其他移動(dòng)操作系統(tǒng)都獨(dú)立開發(fā)移動(dòng)App,對應(yīng)用建設(shè)單位和應(yīng)用管理單位均帶來巨大建設(shè)壓力和維護(hù)管理壓力。尤其由于安卓系統(tǒng)各版本差異性較多,需要更多的針對性開發(fā)。
3.數(shù)據(jù)多,標(biāo)準(zhǔn)少,接口難統(tǒng)一,數(shù)據(jù)共享利用率低。由于學(xué)校核心業(yè)務(wù)系統(tǒng)的建設(shè)單位不一、開發(fā)平臺及實(shí)施路線不同,導(dǎo)致同類型數(shù)據(jù)共享服務(wù)接口格式差異較大,數(shù)據(jù)標(biāo)準(zhǔn)依據(jù)各個(gè)系統(tǒng)的開發(fā)單位習(xí)慣各自獨(dú)立,未按照統(tǒng)一標(biāo)準(zhǔn)進(jìn)行標(biāo)注,在重新規(guī)劃校園移動(dòng)服務(wù)平臺時(shí),需要對同類型業(yè)務(wù)重建并重組大量數(shù)據(jù)接口,往往工作效率低下,開發(fā)進(jìn)度緩慢,維護(hù)工作增大。
因此,在構(gòu)建校園移動(dòng)服務(wù)平臺時(shí),屏蔽個(gè)性化、以較少的開發(fā)成本提供共享利用程度高的移動(dòng)信息服務(wù)成為當(dāng)前校園信息化移動(dòng)轉(zhuǎn)型的重點(diǎn)與機(jī)遇。
圖1 移動(dòng)微校園邏輯架構(gòu)
移動(dòng)微校園立足于高校信息化的歷史建設(shè)成果,將傳統(tǒng)數(shù)字化校園里的各類信息系統(tǒng)作為數(shù)據(jù)及服務(wù)母體,從各服務(wù)系統(tǒng)中篩選出師生訪問頻度高且貼近用戶細(xì)粒度交互需求的服務(wù)對象,將此類對象通過移動(dòng)手段(微信、微博、移動(dòng)APP等)進(jìn)行移動(dòng)端集成,形成響應(yīng)速度快,用戶體驗(yàn)細(xì)致入微的移動(dòng)一站式服務(wù)(系統(tǒng)架構(gòu)如圖1所示)。
為實(shí)現(xiàn)主動(dòng)適應(yīng)各類移動(dòng)智能設(shè)備、移動(dòng)應(yīng)用輕便,使用戶在各類碎片化時(shí)間段內(nèi)均可獲得校園信息系統(tǒng)提供的便捷、及時(shí)的響應(yīng)服務(wù),移動(dòng)微校園的建設(shè)目標(biāo)如下:
1.客戶端層構(gòu)建面向各類校園微服務(wù)的碎片化服務(wù)產(chǎn)品,發(fā)布緊貼用戶個(gè)性化需求的校園微服務(wù),如微教務(wù)(課表查詢、成績查詢)、微財(cái)務(wù)(學(xué)費(fèi)、黨費(fèi)、工資、公積金)、微科研(項(xiàng)目查詢、資金明細(xì)跟蹤)、微評教等動(dòng)態(tài)化多元化碎片服務(wù)。
2.整合微信、移動(dòng)客戶端、Wap及傳統(tǒng)PC信息系統(tǒng)等服務(wù)渠道,建立健全信息系統(tǒng)多渠道協(xié)同服務(wù),保持?jǐn)?shù)據(jù)一致性及服務(wù)體驗(yàn)多元性。
3.以大數(shù)據(jù)分析技術(shù)為基礎(chǔ),為用戶提供多維度、智能化、專業(yè)化的碎片服務(wù)智能管理平臺。
4.以SOA為技術(shù)基礎(chǔ),建立服務(wù)注冊與數(shù)據(jù)開放管理平臺,形成多部門協(xié)同開發(fā)的移動(dòng)數(shù)據(jù)服務(wù)模式。
系統(tǒng)架構(gòu)
以“輕應(yīng)用、碎服務(wù)、快響應(yīng)、多兼容”的原則,移動(dòng)微校園邏輯架構(gòu)如圖1所示。
1.數(shù)據(jù)層:由數(shù)字化校園多年建設(shè)累計(jì)的各類核心信息庫組成,如教師庫、教學(xué)資源庫、學(xué)生信息庫、一卡通數(shù)據(jù)庫、教務(wù)數(shù)據(jù)庫、財(cái)務(wù)數(shù)據(jù)等組成。各數(shù)據(jù)通過數(shù)據(jù)總線方式或數(shù)據(jù)交換方式為上層提供共享數(shù)據(jù)服務(wù)。
2.數(shù)據(jù)交換與共享層:提供各子系統(tǒng)接入的接口,實(shí)現(xiàn)數(shù)據(jù)交換平臺和各信息系統(tǒng)的有機(jī)結(jié)合,以統(tǒng)一的接口規(guī)范實(shí)現(xiàn)數(shù)據(jù)自動(dòng)提取、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)發(fā)送、數(shù)據(jù)校驗(yàn)、數(shù)據(jù)審核等;同時(shí)支持?jǐn)?shù)據(jù)同步、歷史數(shù)據(jù)遷移等。實(shí)現(xiàn)“統(tǒng)一標(biāo)準(zhǔn),統(tǒng)一交換的”構(gòu)想,為不同的數(shù)據(jù)庫、不同數(shù)據(jù)格式之間進(jìn)行數(shù)據(jù)交換。
3.業(yè)務(wù)層:由校園各類核心業(yè)務(wù)系統(tǒng)組成,全面負(fù)責(zé)移動(dòng)校園的各類核心業(yè)務(wù)的處理,在上層校園用戶提供基礎(chǔ)業(yè)務(wù)信息處理、業(yè)務(wù)集成與分享等、并重點(diǎn)將繁重的業(yè)務(wù)處理及計(jì)算集中此處處理,保證上層應(yīng)用的便捷性,輕便性。
4.安全控制層:以統(tǒng)一身份認(rèn)證、基于角色的細(xì)粒度功能控制、授權(quán)控制及細(xì)粒度數(shù)據(jù)控制等,保證移動(dòng)校園的數(shù)據(jù)安全和用戶大數(shù)據(jù)隱私保護(hù)。
5.移動(dòng)服務(wù)層:該層的建設(shè)對象與研究對象均是移動(dòng)校園的重要組成內(nèi)容—碎服務(wù)。其主要工作就是立足校園移動(dòng)用戶需求研發(fā)各類細(xì)粒度碎服務(wù),并適當(dāng)對碎服務(wù)進(jìn)行集成重組,便于上層客戶端的輕展現(xiàn),達(dá)到服務(wù)快速響應(yīng)。
6.客戶端層:以微信、移動(dòng)APP,WAP及瀏覽器等將移動(dòng)服務(wù)層提供的各類微服務(wù)進(jìn)行集成與展現(xiàn),并且可以依據(jù)用戶的偏好,自動(dòng)加載或卸載相關(guān)微服務(wù)。
圖2 移動(dòng)微校園中的一卡通服務(wù)的數(shù)據(jù)交換示意
功能設(shè)計(jì)
1.微教務(wù)
學(xué)生成績:基于大數(shù)據(jù)分析技術(shù),為教師提供多維度學(xué)生成績查詢,如以時(shí)間維度為向?qū)?,提供教師各學(xué)年各門課程學(xué)生成績統(tǒng)計(jì)分析;以課程為維度向?qū)?,分析該教師某門課程歷年教學(xué)水平變化趨勢;以教師為維度,分析該教師各門課程在全校同行中的績效變化等。
教學(xué)督導(dǎo):為學(xué)校教務(wù)督導(dǎo)成員提供多維度教師業(yè)務(wù)水平的統(tǒng)計(jì)分析;同時(shí)依據(jù)校園一卡通的考勤記錄,經(jīng)大數(shù)據(jù)篩查,分析學(xué)生上課質(zhì)量與上課行為的關(guān)系等。
2.微生活
一卡通分析:為師生提供一卡通微服務(wù),幫助其查詢每日一卡通消費(fèi)明細(xì)及地點(diǎn),同時(shí)基于大數(shù)據(jù)分析技術(shù),可橫向、縱向分析其消費(fèi)能力在全校范圍內(nèi)的排名及消費(fèi)習(xí)慣,幫助用戶合理規(guī)劃健康的飲食生活。
圖書借閱:為師生提供移動(dòng)服務(wù)解決服務(wù),如借閱查詢,歸還超期提醒等。
教室查詢:提供學(xué)校3大校區(qū)所有教室的空閑時(shí)間情況,方便學(xué)生合理規(guī)劃自習(xí)時(shí)間與地點(diǎn)。
3.微財(cái)務(wù)
工資查詢:為教職工提供當(dāng)月及歷史工資明細(xì)查詢。
公積金查詢:為教職工提供公積金查詢服務(wù)。
4.微就業(yè)
為學(xué)生提供就業(yè)互動(dòng)服務(wù),如就業(yè)問答、活動(dòng)與講座,招聘信息及在線咨詢預(yù)約服務(wù)等微服務(wù)。
Kettle數(shù)據(jù)交換
由于移動(dòng)微校園的建設(shè)依賴多項(xiàng)校園移動(dòng)碎服務(wù),尤其每個(gè)碎服務(wù)的接口規(guī)范,數(shù)據(jù)庫類型、數(shù)據(jù)標(biāo)準(zhǔn)等差異較大,因此需要應(yīng)用數(shù)據(jù)交換手段,把來自不同數(shù)據(jù)源與數(shù)據(jù)標(biāo)準(zhǔn)的數(shù)據(jù)進(jìn)行優(yōu)化表達(dá),提高數(shù)據(jù)質(zhì)量,對數(shù)據(jù)進(jìn)行按需增量抽取、轉(zhuǎn)換、加載。
Kettle作為純Java編寫的開源ETL,可以為開發(fā)者提供圖形化差異數(shù)據(jù)處理頁面;基于transformation和job兩種腳本,實(shí)現(xiàn)數(shù)據(jù)基礎(chǔ)轉(zhuǎn)換和工作流控制。
以移動(dòng)微校園中的一卡通服務(wù)為例,其job工作流示意圖如圖2所示。
Json數(shù)據(jù)/文件抽取
為提高移動(dòng)微校園的數(shù)據(jù)交換速度,引入Json格式作為數(shù)據(jù)交換的標(biāo)準(zhǔn)傳輸格式是當(dāng)前比較流行的移動(dòng)輕量級數(shù)據(jù)交換方式,其不僅提高數(shù)據(jù)交換效率,又具有較高通用性,適合各類數(shù)據(jù)庫系統(tǒng)間的數(shù)據(jù)交換,且擴(kuò)展性強(qiáng)。以用戶一卡通消費(fèi)分析為例,其歷史消費(fèi)記錄的json數(shù)據(jù)流片段如圖3所示,移動(dòng)客戶端僅僅需要展示消費(fèi)時(shí)間、地點(diǎn)、交易額及卡內(nèi)余額信息,但原始數(shù)據(jù)流卻提供了非常龐大的冗余字段,導(dǎo)致數(shù)據(jù)傳輸緩慢,且與用戶身份信息相關(guān)的字段缺失。因此數(shù)據(jù)清洗與封裝的處理過程如下:
1.Java讀取原始數(shù)據(jù)流,提取消費(fèi)記錄字段sysname1、tranname、poscode、nowAmt、ftranAmt;
2.從校內(nèi)統(tǒng)一身份認(rèn)證系統(tǒng)中依據(jù)用戶登錄時(shí)使用的統(tǒng)一身份認(rèn)證用戶名,提取用戶身份信息,如職工號、年級、用戶類型、專業(yè)、性別等與前面清洗過的數(shù)據(jù)進(jìn)行重組與封裝處理;
圖4 西安交通大學(xué)官方微信號之微校園應(yīng)用效果展示
3.經(jīng)kettle數(shù)據(jù)交換,將清洗重組后的數(shù)據(jù)導(dǎo)入移動(dòng)微校園的數(shù)據(jù)庫,供上層應(yīng)用共享。
其中數(shù)據(jù)封裝的Java代碼片段如下:
ja.getJSONObject(i).put("userno", userno);
ja.getJSONObject(i).put("grade", s.getGrade());
ja.getJSONObject(i).put("classid", s.getClasssid());
ja.getJSONObject(i).put("usertype", s.getUsertype());
ja.getJSONObject(i).put("zydm", s.getSpecialityid());
ja.getJSONObject(i).put("sex", s.getSex());
ja.getJSONObject(i).put("netid",s.getNetid());
ja.getJSONObject(i).getString("sysname1");
ja.getJSONObject(i).getString("tranname");
ja.getJSONObject(i).getString("poscode");
ja.getJSONObject(i).getString("nowAmt");
ja.getJSONObject(i).getString("ftranAmt");
圖3 一卡通原始數(shù)據(jù)流片段
根據(jù)校園移動(dòng)服務(wù)面臨的新挑戰(zhàn),本文以“輕應(yīng)用,碎服務(wù)”理念,將傳統(tǒng)校園信息化的重服務(wù)進(jìn)行碎片化處理與精煉提純,將用戶日常關(guān)心的核心業(yè)務(wù)進(jìn)行碎化與再重組,快速搭建適應(yīng)數(shù)據(jù)多元,服務(wù)動(dòng)態(tài)的移動(dòng)微校園服務(wù)平臺。該平臺基于kettle和json有效屏蔽了數(shù)據(jù)庫與數(shù)據(jù)接口的差異性,構(gòu)建的微生活、微財(cái)務(wù)、微教務(wù)等應(yīng)用,可便捷集成入校園官方微信公眾號進(jìn)行發(fā)布,也可同時(shí)嵌入校園官方移動(dòng)App,真正實(shí)現(xiàn)校園移動(dòng)服務(wù)跨平臺共享,極大減少客戶端應(yīng)用的開發(fā)量和維護(hù)量。
截至目前,該研究成果已經(jīng)集成入西安交通大學(xué)官方微信號中(如圖4所示),學(xué)生端集成的微服務(wù)共計(jì)9項(xiàng),教師端集成微服務(wù)共計(jì)7項(xiàng),數(shù)據(jù)量達(dá)10余萬條。
未來的工作將集中放在移動(dòng)客戶端的用戶交互體驗(yàn)升級,將智能移動(dòng)設(shè)備的各類傳感器優(yōu)勢發(fā)揮最大,研發(fā)適應(yīng)時(shí)代潮流和用戶細(xì)粒度需求的碎服務(wù),隨時(shí)集成入移動(dòng)微校園供用戶使用。
(作者單位為西安交通大學(xué)數(shù)據(jù)與信息中心)