畢 波,季耀君,許 靜
(1.北京理工大學(xué),北京 100081;2.馬鞍山師范高等??茖W(xué)校,安徽 馬鞍山 243041)
高校門(mén)戶網(wǎng)站是高校信息匯總、發(fā)布、分析、處理、存儲(chǔ)的重要平臺(tái).它集子功能系統(tǒng)、數(shù)據(jù)共享、互聯(lián)網(wǎng)信息于一體,貫穿于教師、學(xué)生、行政人員整個(gè)工作與學(xué)習(xí)生活中.互聯(lián)網(wǎng)時(shí)代的不斷發(fā)展,門(mén)戶網(wǎng)站的建設(shè)顯得尤為重要,但隨著移動(dòng)終端的快速增長(zhǎng),基于PC的門(mén)戶及管理系統(tǒng)已經(jīng)不能適應(yīng)移動(dòng)終端的需求.這就需要對(duì)不同的移動(dòng)平臺(tái)開(kāi)發(fā)特定的移動(dòng)終端APP,但不同的開(kāi)發(fā)團(tuán)隊(duì)對(duì)同一功能的應(yīng)用系統(tǒng)開(kāi)發(fā)適用于不同平臺(tái)的移動(dòng)終端APP,無(wú)論從人力、財(cái)力、物力來(lái)說(shuō)都是非常昂貴的.因此,開(kāi)發(fā)一個(gè)能夠高效、低成本地構(gòu)建跨平臺(tái)的高效門(mén)戶系統(tǒng)的移動(dòng)終端APP框架意義重大.本文就安徽省重點(diǎn)項(xiàng)目《基于Apache Cordova的高校門(mén)戶系統(tǒng)跨平臺(tái)移動(dòng)開(kāi)發(fā)框架研究與實(shí)現(xiàn)》中如何構(gòu)建框架服務(wù)層學(xué)生服務(wù)系統(tǒng)移動(dòng)接口進(jìn)行了研究與設(shè)計(jì).
以本校為例,學(xué)生服務(wù)工作主要為等級(jí)考試報(bào)名和火車票優(yōu)惠卡辦理兩個(gè)方面,通過(guò)此學(xué)生服務(wù)平臺(tái)的建設(shè),一方面為大學(xué)生提供便捷、高效的報(bào)名和辦理事務(wù)流程,另一方面為管理者提供了實(shí)用、方便的管理平臺(tái).
由上述分析可得,學(xué)生服務(wù)系統(tǒng)功能主要包括兩個(gè)方面:一是等級(jí)考試報(bào)名功能.等級(jí)考試管理員開(kāi)通等級(jí)報(bào)名考試權(quán)限后,學(xué)生可登陸成功自己的賬戶選擇報(bào)考科目.待報(bào)名工作結(jié)束后,等級(jí)考試管理員通過(guò)后臺(tái)可以匯總要報(bào)考學(xué)生的信息.同時(shí)系統(tǒng)還提供報(bào)名數(shù)據(jù)庫(kù)字段的增刪,報(bào)名信息的增刪改查,文件的導(dǎo)入導(dǎo)出、報(bào)考信息提示等功能.二是火車票優(yōu)惠卡辦理功能,火車票事務(wù)管理員開(kāi)通火車票優(yōu)惠卡辦理權(quán)限后,學(xué)生可登陸成功自己的賬戶選擇是否購(gòu)買火車票優(yōu)惠卡.系統(tǒng)會(huì)自動(dòng)地將學(xué)生的生源地匹配學(xué)生家庭住址火車站點(diǎn).火車票事務(wù)管理員通過(guò)后臺(tái)可以匯總要購(gòu)買火車票優(yōu)惠卡學(xué)生的信息和有改動(dòng)返程去向?qū)W生的信息.除了上述兩大功能外,還具體一些通用的功能,如:設(shè)定報(bào)名(辦理)時(shí)間、通知信息的推送,不同權(quán)限的注冊(cè)與登陸,不同權(quán)限不同需求的查詢、統(tǒng)計(jì)等.
運(yùn)用學(xué)生服務(wù)系統(tǒng)移動(dòng)接口,就可以使應(yīng)用系統(tǒng)非常方便、快速的跨平臺(tái)使用.如:IOS、Android、WindowsPhone.它的總體設(shè)計(jì)主要包含三個(gè)部分:移動(dòng)UI的WEB層、Apache Cordova層的接口封裝、本地適配模塊.在運(yùn)用Apache Cordova框架開(kāi)發(fā)的移動(dòng)應(yīng)用中,移動(dòng)UI界面是通過(guò)在Web層中的HTML、CSS以及Javascript設(shè)計(jì)進(jìn)行呈現(xiàn)的,Webview來(lái)完成Render和Parse任務(wù),而Webview會(huì)根據(jù)不同的移動(dòng)平臺(tái)區(qū)別其內(nèi)核.當(dāng)系統(tǒng)調(diào)用Apache Cordova框架中的接口模塊時(shí),將通過(guò)Webview Parse后通過(guò)特定模塊傳調(diào)給Apache Cordova框架中集成的本地插件模塊,如調(diào)用消息推送接口模塊.這些模塊通過(guò)Native Code執(zhí)行完畢后,再將結(jié)果Return給Webview,并發(fā)送給上層的Javascript.Javascript層的回調(diào)函數(shù)將處理執(zhí)行Return結(jié)果.在整個(gè)調(diào)用過(guò)程里,Apache Cordova框架會(huì)通過(guò) Synchronized或Asynchronous events來(lái)處理不同模塊之間的協(xié)同作業(yè),以及不同層的信息傳遞.
數(shù)據(jù)的傳輸與處理接口對(duì)應(yīng)用系統(tǒng)是至關(guān)重要的,本接口運(yùn)用Javascript對(duì)數(shù)據(jù)庫(kù)操作進(jìn)行了封裝.此接口提供整個(gè)系統(tǒng)數(shù)據(jù)查詢、增加、刪除、修改操作.本系統(tǒng)也經(jīng)常需要一些文件地導(dǎo)入、導(dǎo)出,對(duì)于文件、信息的傳輸與讀寫(xiě)也提供了移動(dòng)應(yīng)用程序的支持.由于IOS、Android、Windows-Phone等不同的平臺(tái)是由差異的,所以此接口為與平臺(tái)通用的Javascript統(tǒng)一接口.
根據(jù)需求分析,系統(tǒng)要經(jīng)常發(fā)送一些考試報(bào)名通知、報(bào)名成功確認(rèn)信息、事務(wù)辦理通知等.此接口包含如下功能:一是用戶登陸,該模塊根據(jù)具體不同的平臺(tái)和用戶提供的身份信息,做相應(yīng)的用戶登陸操作;二是退出登陸,關(guān)閉用戶信息服務(wù)端的連接狀態(tài);三是發(fā)送信息,本地客戶端在Javascript層通過(guò)發(fā)送函數(shù)將所要發(fā)送的消息發(fā)送到服務(wù)器端,相關(guān)函數(shù)接收后再根據(jù)傳入的相關(guān)參數(shù)用以封裝和打包消息,如消息的內(nèi)容、字節(jié)數(shù)和類型等,最后通過(guò)連接對(duì)方服務(wù)器端發(fā)送給用戶;四是消息反饋,信息發(fā)送成功后,將通過(guò)相關(guān)函數(shù)反饋給發(fā)送端.
本接口主要提供本地系統(tǒng)數(shù)據(jù)庫(kù)的查詢、增加、刪除、修改操作.通過(guò)存入數(shù)據(jù)操作SQL語(yǔ)句的Json數(shù)組作為參數(shù)傳給本地模塊,其執(zhí)行完畢后,再通過(guò)Json數(shù)組傳回Javascript層回調(diào)函數(shù)處理.也就是說(shuō)通過(guò)Apache Cordova完成Javascript與本地模塊的通信.數(shù)據(jù)處理接口主要包含如下:查詢操作seek(JsonArray arrayparameter,CallbackContext callbackcontext);增加操作 add(JsonArray arrayparameter,CallbackContext callbackcontext);修改操作,alter(JsonArray arrayparameter,CallbackContext callbackcontext);刪除操作,delete(JsonArray arrayparameter,CallbackContext callbackcontext)這些接口對(duì)應(yīng)地將查詢、增加、刪除、修改語(yǔ)句傳入arrayparameter參數(shù),再通過(guò)本地層執(zhí)行查詢、增加、刪除、修改語(yǔ)句.查詢、增加、刪除、修改執(zhí)行后結(jié)果由JsonArray參數(shù)返回給Javascript層回調(diào)函數(shù)處理,通過(guò)CallbackContex反饋成功與否.
文件讀寫(xiě)接口也是通過(guò)存入文件(讀取或?qū)懭耄┑腏son數(shù)組作為參數(shù)傳給回調(diào)函數(shù),在本地模塊中實(shí)現(xiàn)的文件讀取、寫(xiě)入、刪除等操作,執(zhí)行結(jié)果再由Json數(shù)組參數(shù)反饋給Javascript層.文件讀寫(xiě)接口主要實(shí)現(xiàn)了如下操作:
(1)文件讀取操作,fileread(JsonArray arrayparameter,CallbackContext callbackcontext),arrayparameter參數(shù)傳入讀取文件所需要的信息,如文件名稱、文件讀取起初位置,文件讀取大小等.再通過(guò)callbackcontext參數(shù)讀取文件內(nèi)容,最后通過(guò)arrayparameter參數(shù)傳給Javascript層.
(2)文件寫(xiě)入操作,filewrite(JsonArray arrayparameter,CallbackContext callbackcontext),arrayparameter參數(shù)傳入要寫(xiě)入文件所需要的信息,如文件名稱、文件寫(xiě)入起初位置,文件寫(xiě)入大小等.如果寫(xiě)入成功或發(fā)生錯(cuò)誤,將通過(guò)callbackcontext參數(shù)返回成功或錯(cuò)誤信息.
(3)文件刪除操作,filedelete(JsonArray arrayparameter,CallbackContext callbackcontext),arrayparameter參數(shù)傳入要?jiǎng)h除文件所需要的信息,如文件名稱.如果刪除成功或發(fā)生錯(cuò)誤,將通過(guò)callbackcontext參數(shù)返回成功或錯(cuò)誤信息.
消息推送技術(shù)主要分為輪詢和持久連接兩種.本接口選擇持久連接技術(shù).持久連接技術(shù)是基于TCP協(xié)議建立連接,通過(guò)發(fā)送心跳包的方式在客戶設(shè)備端與服務(wù)器端之間構(gòu)建一條可靠持久的通道.當(dāng)服務(wù)器端有新消息時(shí),通過(guò)此持久連接隨時(shí)將消息推送給客戶設(shè)備端.系統(tǒng)需要消息推送時(shí),通過(guò)通過(guò)上層調(diào)用消息推送接口,通過(guò)相應(yīng)消息擴(kuò)展模塊調(diào)用Android運(yùn)行時(shí)中的Service服務(wù)組件,而Service組件的Trans Service則處理客戶設(shè)備端與服務(wù)器端之間通道的連接與消息發(fā)送、接收的工作.
服務(wù)設(shè)備端的消息推送模塊采用了Apache Mina開(kāi)源框架.其中主要包含以下子模塊:一是DataBase storage數(shù)據(jù)庫(kù)存儲(chǔ)模塊,其包括用戶個(gè)人信息,登錄信息,發(fā)送消息信息等.這些都是信息推送實(shí)現(xiàn)的基礎(chǔ),可以詳細(xì)記錄每條消息的推送狀態(tài).二是Persistent connection communication持久連接通信模塊,此模塊主要負(fù)責(zé)根據(jù)TCP協(xié)議對(duì)信息的解包與封包,再者對(duì)持久連接通信的維護(hù).三是Information processing module信息處理模塊,此模塊會(huì)根據(jù)接收到的信息標(biāo)識(shí)分析信息類型,如:信息通知類、系統(tǒng)更新類、登陸退出類等,然后再根據(jù)信息的類型分別處理.
參考文獻(xiàn):
〔1〕肖敏.基于Apache Cordova的跨平臺(tái)智能家居終端應(yīng)用研發(fā)[J].華南理工大學(xué)學(xué)報(bào),2015(12):224-228.
〔2〕韓立峰.基于ASP.NET Web API框架的校園一卡通手機(jī)客戶端研究[J].計(jì)算機(jī)與現(xiàn)代化,2014(09):6-10.
赤峰學(xué)院學(xué)報(bào)·自然科學(xué)版2018年4期