陳智翔 吳黎明
(廣東工業(yè)大學(xué)信息工程學(xué)院)
目前,高校信息化建設(shè)不斷發(fā)展,大多數(shù)高校都開發(fā)了用于教學(xué)管理的各種應(yīng)用系統(tǒng),例如:教務(wù)管理信息系統(tǒng)、學(xué)生選課系統(tǒng)、圖書館系統(tǒng)等。在這些系統(tǒng)中,師生與教務(wù)管理人員可以通過 Web網(wǎng)絡(luò)服務(wù)進(jìn)行信息交流與互動,用以輔助日常的教務(wù)管理工作。然而,這些正在使用的信息系統(tǒng)存在不足:數(shù)據(jù)分散在各個(gè)異構(gòu)的應(yīng)用系統(tǒng),系統(tǒng)間信息的交互非常困難;數(shù)據(jù)比較孤立,形成很多信息孤島,導(dǎo)致無法提供準(zhǔn)確的個(gè)性化信息服務(wù)。例如教務(wù)管理部門在特殊信息發(fā)布或信息交流上比較被動,只能通過網(wǎng)上公告或?qū)訉愚D(zhuǎn)達(dá);舊的管理模式嚴(yán)重偏離“以人為本”的理念。以學(xué)生為例,一些個(gè)性化較強(qiáng)的信息,諸如補(bǔ)考通知、考試安排、評優(yōu)評選、學(xué)業(yè)預(yù)警等,教務(wù)管理部門無法為每個(gè)相關(guān)學(xué)生進(jìn)行電話、短信通知,學(xué)生可能沒有及時(shí)查看公告或郵件,致使工作延誤或失去時(shí)機(jī)。
隨著信息技術(shù)的迅猛發(fā)展,移動互聯(lián)網(wǎng)催生的服務(wù)型校園移動信息系統(tǒng)將成為高校信息化建設(shè)的風(fēng)向標(biāo)[1-2]。針對目前信息系統(tǒng)面臨的困境,整合現(xiàn)有業(yè)務(wù)和數(shù)據(jù)后,充分與移動終端結(jié)合,根據(jù)邏輯業(yè)務(wù)需求,將業(yè)務(wù)需求、業(yè)務(wù)流程和數(shù)據(jù)存儲以服務(wù)的形式進(jìn)行包裝并發(fā)布到一個(gè)標(biāo)準(zhǔn)化、開放性的平臺,可以達(dá)到既保留目前應(yīng)用系統(tǒng)、又能適應(yīng)業(yè)務(wù)變化及發(fā)展的目的。面向服務(wù)的體系結(jié)構(gòu)(service-oriented architecture,SOA)以服務(wù)為核心,憑借其松耦合的特點(diǎn),成為新一代軟件體系結(jié)構(gòu)的主流模型[3-7]。SOA是一個(gè)組件模型,它應(yīng)用于程序的不同功能單元(稱為服務(wù)),通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來,接口是采用中立的方式進(jìn)行定義的。它獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言。
基于SOA架構(gòu)的校園移動信息服務(wù)系統(tǒng),整合了目前的各種應(yīng)用系統(tǒng),在模塊設(shè)計(jì)中使用松散耦合,使原有在校園系統(tǒng)中的服務(wù),通過統(tǒng)一的方式進(jìn)行交互,建立開放性的高校教學(xué)管理平臺,并在移動終端開發(fā)相應(yīng)的客戶端應(yīng)用程序,使師生、行政人員等能夠?qū)崟r(shí)了解相關(guān)學(xué)習(xí)、科研、教務(wù)信息,從而大大提高教學(xué)管理的效率。
基于SOA架構(gòu)的校園移動服務(wù)信息系統(tǒng)總體設(shè)計(jì)思想是:結(jié)合成熟的移動互聯(lián)網(wǎng)相關(guān)技術(shù)和服務(wù),把原有校園應(yīng)用系統(tǒng)接口進(jìn)行整合,作為平臺在服務(wù)器上提供給移動終端進(jìn)行相關(guān)數(shù)據(jù)服務(wù);并且為了滿足師生、行政人員的使用,平臺應(yīng)根據(jù)用戶終端設(shè)置,提供主動式信息實(shí)時(shí)查詢和被動式信息推送提醒服務(wù)。
在校園移動服務(wù)信息系統(tǒng)中,用戶既可通過電腦,也可以通過手機(jī)接入與系統(tǒng)交互,從而使系統(tǒng)具有更高的實(shí)時(shí)性、交互性,提高系統(tǒng)的智能化和人性化程度。將終端從電腦擴(kuò)展到智能手機(jī)的新型教務(wù)管理系統(tǒng),增加了終端和用戶的數(shù)量,擴(kuò)大了系統(tǒng)的覆蓋和應(yīng)用范圍。教師與學(xué)生可以通過手機(jī),及時(shí)將各種信息提交給系統(tǒng),縮短了信息發(fā)布與接收的時(shí)間,提高了教學(xué)管理的效率。同時(shí)教務(wù)管理人員通過手機(jī)接入系統(tǒng)后臺,可以實(shí)時(shí)地了解系統(tǒng)運(yùn)行的情況,掌握系統(tǒng)最新的狀態(tài),確保系統(tǒng)的安全性。
首先整合現(xiàn)有應(yīng)用系統(tǒng),通過對已有校園應(yīng)用系統(tǒng)進(jìn)行接口開發(fā)或整合,并將相應(yīng)接口統(tǒng)一接入移動信息系統(tǒng),供移動信息系統(tǒng)在進(jìn)行復(fù)雜信息處理時(shí)使用。例如發(fā)布補(bǔ)考或獎(jiǎng)學(xué)金通知時(shí),需要整合的相關(guān)系統(tǒng)有:發(fā)布通知信息的行政通知系統(tǒng)、查詢教務(wù)成績的教務(wù)成績系統(tǒng)、學(xué)籍電子檔案系統(tǒng)等。
校園移動服務(wù)信息系統(tǒng)與移動智能終端結(jié)合——整體架構(gòu)為客戶端/服務(wù)器模式。客戶端在主流智能操作系統(tǒng)(IOS,Android,WP)上運(yùn)行,通過客戶端訪問校園移動服務(wù)信息系統(tǒng),并依靠移動智能終端定位等擴(kuò)展系統(tǒng)平臺功能,最大限度地滿足用戶隨時(shí)隨地進(jìn)行校園咨詢信息處理的需求。與移動終端通信的信息分為兩種:一種是主動式實(shí)時(shí)信息,即用戶在客戶端主動發(fā)起的信息請求;另一種是被動式推送信息,即用戶在客戶端訂閱相關(guān)信息后,可以在不打開情況下收到這類信息的提示通知。用戶通過這兩種信息可以完成與校園服務(wù)系統(tǒng)的所有業(yè)務(wù)交互。
在校園移動服務(wù)內(nèi)部系統(tǒng)穩(wěn)定可靠后,通過接入第三方平臺來為更多校園服務(wù)提供個(gè)性化定制服務(wù),例如相關(guān)云存儲服務(wù),滿足資料表格等在線存入個(gè)人文檔;第三方在線支付服務(wù),直接在線支付校園相關(guān)費(fèi)用。
校園移動服務(wù)信息系統(tǒng)的服務(wù)對象包括行政用戶、教師用戶和學(xué)生終端,其服務(wù)類型和功能分別如如表1、表2、表3所示。
校園移動服務(wù)信息系統(tǒng)平臺主要由5部分組成:1) Web服務(wù)接口與移動終端服務(wù)接口,這些接口負(fù)責(zé)響應(yīng)終端發(fā)出的數(shù)據(jù)請求;2) 業(yè)務(wù)處理核心,它根據(jù)數(shù)據(jù)請求類型調(diào)用原有校園系統(tǒng)進(jìn)行數(shù)據(jù)處理;3) 平臺數(shù)據(jù)庫,負(fù)責(zé)存儲信息系統(tǒng)的相關(guān)數(shù)據(jù);4) 第三方數(shù)據(jù)接口,根據(jù)系統(tǒng)核心需要與第三方平臺進(jìn)行數(shù)據(jù)傳輸;5) 原有校園系統(tǒng)相應(yīng)對接數(shù)據(jù)接口,以滿足系統(tǒng)平臺的不同類型服務(wù)。整體結(jié)構(gòu)和層次結(jié)構(gòu)如圖1所示。
表1 行政人員終端服務(wù)類型及功能
表2 教師終端服務(wù)類型及功能
表3 學(xué)生終端服務(wù)類型及功能
在基于SOA架構(gòu)的服務(wù)系統(tǒng)的核心服務(wù)中,可以很方便地調(diào)用外部信息系統(tǒng)協(xié)同工作,完成用戶的個(gè)性化信息服務(wù)。例如定制通知服務(wù),當(dāng)需要發(fā)布一條受眾人群明確的通知時(shí)(以獎(jiǎng)學(xué)金申請為例),行政人員在發(fā)出公告時(shí),通過移動信息服務(wù)系統(tǒng)接口可以選擇受眾人群(如成績系統(tǒng)中無掛科的學(xué)生);在原有系統(tǒng)發(fā)出公告的同時(shí),向校園移動信息核心發(fā)出申請,核心先調(diào)用教務(wù)服務(wù)接口查詢,然后再確定需要通知的人群,返回查詢結(jié)果后在平臺服務(wù)器端的通信服務(wù)模塊加入標(biāo)識,如用戶上線或在線則通過被動推送方式推送到用戶終端,并將相應(yīng)文檔轉(zhuǎn)發(fā)入該用戶的存儲中心(如第三方云存儲平臺)。
圖1 移動信息服務(wù)系統(tǒng)整體架構(gòu)圖
基于SOA的校園移動服務(wù)系統(tǒng)中,通過校園智能支付可以在終端用第三方支付平臺(如支付寶)快捷完成校園內(nèi)各類繳費(fèi)服務(wù),而不用到固定地點(diǎn)排隊(duì)充值。用戶在終端 APP上根據(jù)業(yè)務(wù)選擇相應(yīng)充值服務(wù),APP自動調(diào)用第三方支付平臺進(jìn)行在線支付,支付完成后,支付平臺將跳轉(zhuǎn)到預(yù)先指定的信息平臺URL鏈接,通過POST方式將支付信息作為參數(shù)回調(diào)信息平臺,平臺根據(jù)預(yù)先指定密鑰解密參數(shù),最終將支付信息錄入相應(yīng)校園系統(tǒng)完成充值服務(wù)。
平臺整合前,原有系統(tǒng)各自獨(dú)立,校園用戶使用相關(guān)業(yè)務(wù)時(shí)需要單獨(dú)進(jìn)入系統(tǒng)進(jìn)行處理,并不能很好地滿足各類用戶的需求。平臺系統(tǒng)搭建后,在平臺上實(shí)現(xiàn)個(gè)業(yè)務(wù)關(guān)聯(lián)處理模塊,校園原有系統(tǒng)都可以按照接口規(guī)范等接入平臺,不僅能通過平臺推送機(jī)制滿足實(shí)時(shí)性信息需求,還能發(fā)揮出原有系統(tǒng)之間的業(yè)務(wù)關(guān)聯(lián)性,且用戶可隨時(shí)隨地使用智能終端就可完成原來耗時(shí)的業(yè)務(wù)服務(wù)。
在基于SOA架構(gòu)的校園移動服務(wù)系統(tǒng)中,各模塊功能可采用多種開發(fā)技術(shù)和框架完成。下面著重闡述該系統(tǒng)終端(以Android系統(tǒng)終端為例)與服務(wù)器端通信的實(shí)現(xiàn)。
所有的業(yè)務(wù)功能都是建立在移動終端與服務(wù)器通信之上的,與服務(wù)器交互的信息分為主動式實(shí)時(shí)信息和被動式推送信息。這兩種信息的實(shí)現(xiàn)機(jī)制側(cè)重點(diǎn)在于主動式信息強(qiáng)調(diào)用戶在終端主動去獲取,而被動式信息強(qiáng)調(diào)服務(wù)器在用戶有信息時(shí)自動推送到用戶終端,因此需要使用不同的實(shí)現(xiàn)技術(shù)完成該通信功能,通信整體結(jié)構(gòu)圖如圖2所示。
圖2 移動終端與服務(wù)平臺通信圖
主動式實(shí)時(shí)信息機(jī)制是當(dāng)用戶手動查詢相關(guān)業(yè)務(wù)時(shí)后臺自動調(diào)用。該方式采用HTTP的通信機(jī)制,交換的數(shù)據(jù)格式為 Json??蛻舳藢⒄埱笮畔⒋虬蒆TTP并傳送給服務(wù)器端,服務(wù)器將請求信息發(fā)送至Servlet。Servlet根據(jù)客戶端的具體請求進(jìn)行后臺數(shù)據(jù)庫查詢或原有系統(tǒng)模塊處理,動態(tài)生成響應(yīng)內(nèi)容并將其傳送給 Server,最后服務(wù)器端將該響應(yīng)內(nèi)容轉(zhuǎn)換成Json格式返回到客戶端。其主要流程如圖3所示。
圖3 主動式信息服務(wù)流程圖
當(dāng)需要從服務(wù)器上主動獲取信息服務(wù)時(shí),調(diào)用流程:
1) 從相應(yīng)業(yè)務(wù)邏輯界面(如查詢成績界面), 調(diào)用主動獲取模塊中的發(fā)起請求方法;
2) 請求方法開始連接服務(wù)器,傳遞相應(yīng)請求參數(shù),以Android開發(fā)為例,代碼如下:
HttpParams parms = new BasicHttpParams();
parms.setParameter("charset", HTTP.UTF_8);
HttpClient httpclient = new DefaultHttpClient(parms);
HttpPost httpPost = new HttpPost(uploadUrl);
httpPost.addHeader("charset", HTTP.UTF_8);
List
params.add(new BasicNameValuePair("title",title));
httpPost.setEntity(new
UrlEncodedFormEntity(params, HTTP.UTF_8));
//向服務(wù)器發(fā)出請求
HttpResponse httpResponse = httpclient.execute(httpPost);
3) 服務(wù)器端判斷請求,調(diào)用相應(yīng)服務(wù)模塊,完成后返回結(jié)果;
4) 客戶端接收結(jié)果,調(diào)用UI模塊進(jìn)行相關(guān)數(shù)據(jù)顯示。
被動式推送信息采用的即時(shí)通信協(xié)議是 XMPP(可擴(kuò)展消息處理現(xiàn)場協(xié)議)。XMPP是一種基于XML(可編程擴(kuò)展語言),實(shí)現(xiàn)任意兩個(gè)網(wǎng)絡(luò)終端實(shí)時(shí)信息交換的通信協(xié)議。XMPP的基本網(wǎng)絡(luò)結(jié)構(gòu)包括Client、Server、Gateway,通信能夠在這三者的任意兩個(gè)之間雙向發(fā)生。服務(wù)器同時(shí)承擔(dān)了客戶端信息記錄、連接管理和信息的路由功能?;镜木W(wǎng)絡(luò)形式是單客戶端通過 TCP/IP連接到單服務(wù)器,然后傳輸XML。
當(dāng)終端注冊以獲取被動式推送消息時(shí),終端與服務(wù)器的主要流程如圖4所示。
圖4 推送信息流程圖
XMPP服務(wù)器之間、客戶與服務(wù)器之間采用的是TCP連接。它提供一種面向連接可靠的字節(jié)流服務(wù)。TCP將用戶數(shù)據(jù)打包構(gòu)成報(bào)文段,當(dāng)發(fā)送數(shù)據(jù)后啟動一個(gè)定時(shí)器,等待對端數(shù)據(jù)確認(rèn),另一端對收到的數(shù)據(jù)進(jìn)行確認(rèn)。對失序的數(shù)據(jù)重新排序,并丟棄重復(fù)數(shù)據(jù)。但是GPRS網(wǎng)絡(luò)對TCP鏈路存在一個(gè)限制,當(dāng)鏈路在長時(shí)間無數(shù)據(jù)流量時(shí),會自動降低此鏈路的優(yōu)先級直至強(qiáng)制斷開此鏈路,所以在應(yīng)用中采用發(fā)送心跳的方式來維持此鏈路。
傳統(tǒng)的簡單事務(wù)處理類型的信息系統(tǒng)無法適應(yīng)不斷發(fā)展的業(yè)務(wù)要求,科技發(fā)展促進(jìn)教育信息化變革與進(jìn)步,基于SOA架構(gòu)的校園移動信息服務(wù)系統(tǒng),是移動互聯(lián)網(wǎng)與數(shù)字校園的緊密結(jié)合。本文分別從架構(gòu)和實(shí)現(xiàn)上對該系統(tǒng)進(jìn)行了闡述和分析,在評估我?,F(xiàn)有校園系統(tǒng)資源后逐步搭建實(shí)現(xiàn)該服務(wù)系統(tǒng)。隨著移動互聯(lián)網(wǎng)時(shí)代的到來,高校信息化已從傳統(tǒng)的管理方式向主動服務(wù)的模式轉(zhuǎn)變,是學(xué)校與學(xué)生互動的一種新途徑,是數(shù)字校園擴(kuò)大外延服務(wù)的新嘗試。
[1] 楊麗萍,王薇.基于手機(jī)平臺的教學(xué)信息系統(tǒng)的研發(fā)[J].長春大學(xué)學(xué)報(bào),2009,19(8):15-17.
[2] 蘇長明.基于J2ME—J2EE的校園移動信息查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].成都大學(xué)學(xué)報(bào):自然科學(xué)版,2012,31(3):254-257.
[3] 林懷恭,聶瑞華,羅輝瓊,等.基于 SOA 架構(gòu)的服務(wù)集成技術(shù)的研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009, 19(7): 141-144.
[4] 裘慧奇,陳世平,朱宇紅,等.基于 SOA 的區(qū)域內(nèi)高校校際間網(wǎng)上資源共享和協(xié)作服務(wù)模式研究[J].計(jì)算機(jī)應(yīng)用研究,2011,28(1):192-194.
[5] 武裝,李洪奇.一種分布式SOA體系結(jié)構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2008,24(36):253-255.
[6] 魏東,陳曉江,房鼎益.基于SOA體系結(jié)構(gòu)的軟件開發(fā)方法研究[J].微電子學(xué)與計(jì)算機(jī),2005,22(6):73-76.
[7] 曹曉葉,王知衍,許曉偉,等.基于 SOA 的企業(yè)應(yīng)用集成研究與應(yīng)用[J].微計(jì)算機(jī)信息,2007,23(36): 16-19.