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