陳蔚
(浙江工業(yè)職業(yè)技術(shù)學(xué)院,浙江 紹興 312000)
基于WebService的手機(jī)APP消息推送機(jī)制研究與實現(xiàn)淺析
陳蔚
(浙江工業(yè)職業(yè)技術(shù)學(xué)院,浙江 紹興 312000)
簡要介紹了WebService的設(shè)計模式,給出了一個通過WebService技術(shù)實現(xiàn)手機(jī)APP與校園網(wǎng)服務(wù)平臺異構(gòu)系統(tǒng)間消息傳送與交互的案例。
WebService;APP;異構(gòu);消息推送;一站式服務(wù)
隨著智能移動終端的普及,師生通過手機(jī)獲取學(xué)校信息和辦理業(yè)務(wù)的愿望越來越強(qiáng)烈,傳統(tǒng)的信息化門戶的功能已經(jīng)無法完全滿足師生的移動訪問需求。而且隨著學(xué)生對手機(jī)的依賴性越來越強(qiáng),學(xué)校需要考慮如何讓學(xué)生合理利用手機(jī)進(jìn)行學(xué)習(xí)、獲取校園信息、辦理學(xué)校業(yè)務(wù)以及及時將信息推送給目標(biāo)師生手機(jī)用戶等用途。
移動校園APP可以將校園內(nèi)的生活、辦公、學(xué)習(xí)、服務(wù)等各類信息進(jìn)行分類整理,以智能終端設(shè)備、3G網(wǎng)絡(luò)、無線網(wǎng)絡(luò)、移動網(wǎng)絡(luò)等各種移動技術(shù)為載體,把各類校園信息聚合起來,讓廣大師生不受地域、時間等客觀條件的限制,僅需使用自己的移動設(shè)備便能夠快速、準(zhǔn)確地查詢到自己想要的信息。目前校園中各個部門由于職能和分工不同,它們所管轄和負(fù)責(zé)的內(nèi)容也不同,這樣就導(dǎo)致了所有在校園內(nèi)發(fā)布的信息都是零散的,不便于用戶快速準(zhǔn)確地找到想要的東西。由此,在移動校園客戶端這樣一個媒介下,它能夠為在校師生提供一個更為便捷的平臺來方便校園中的移動生活,同時該平臺也能夠高效地提高校園內(nèi)準(zhǔn)確有效信息的傳播效率,有助于完善校園的智能化、移動化建設(shè),讓師生在校園中的移動生活更加簡便和豐富。通過手機(jī)APP的信息推送功能,我們能將通知信息第一時間發(fā)送到學(xué)生手機(jī)里,縮短了消息通知的傳達(dá)時間,擴(kuò)大了消息送達(dá)人群的范圍?;诖耍疚慕榻B了通過WebService技術(shù)如何實現(xiàn)手機(jī)APP與校園網(wǎng)服務(wù)平臺異構(gòu)系統(tǒng)間消息的傳送與交互。
WebService是一個平臺獨立的、低耦合的、自包含的、基于可編程的web應(yīng)用程序,可使用開放的XML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個子集)標(biāo)準(zhǔn)來描述、發(fā)布、發(fā)現(xiàn)、協(xié)調(diào)和配置這些應(yīng)用程序,用于開發(fā)分布式的互操作應(yīng)用程序。WebService使得運(yùn)行在不同機(jī)器上的不同應(yīng)用無須借助附加的、專門的第三方軟件或硬件,無論所使用的是什么語言、任何平臺,都可相互交換數(shù)據(jù)或集成,并且減少了應(yīng)用接口的花銷。
我?!癷浙工院”手機(jī)APP客戶端是一款集移動學(xué)習(xí)、移動辦事、移動服務(wù)為一體的軟件,為校內(nèi)師生提供了一站式服務(wù),方便校內(nèi)師生進(jìn)行校內(nèi)信息查詢、日常事務(wù)辦理及部分校外查詢。具體服務(wù)內(nèi)容包括:校內(nèi)通知查詢、常用信息查詢、成績查詢、課表查詢、網(wǎng)上選課、考試安排、網(wǎng)絡(luò)課程學(xué)習(xí)、宿舍水電費繳納、考試報名繳費、失物招領(lǐng)、網(wǎng)絡(luò)故障報修、后勤服務(wù)報修、OA通知查詢、圖書借閱、一卡通查詢、掛失和充值、工會體育鍛煉時長查詢、工資查詢、畢業(yè)生離校辦理、校內(nèi)常用信息查詢等50多項功能。i浙工院客戶端推出以來,受到了廣大師生的歡迎,極大地方便了廣大師生的校內(nèi)學(xué)習(xí)生活,提高了辦事效率。
以往學(xué)校給學(xué)生發(fā)通知需要由學(xué)校通知到分院,其次由分院通知到班級,再由班級通知到學(xué)生,信息傳達(dá)的效率相對較低,現(xiàn)在,通過i浙工院的信息推送功能,我們能將通知信息第一時間發(fā)送到學(xué)生手機(jī)里。消息推送機(jī)制需要通過WebService實現(xiàn)。
在進(jìn)行手機(jī)端PUSH消息推送時,需要有客戶端手機(jī)設(shè)備的相關(guān)信息記錄,如手機(jī)設(shè)備號(esn,每部設(shè)備號都是唯一的),客戶端ID(clientid,客戶端打包后有這個id),CA登錄用戶名(username,新聞類推送給所有人不需要這個信息,但是像一卡通余額或其他定向的用戶消息推送需要此信息)。
由于APP服務(wù)端在設(shè)計開發(fā)時并不存放用戶的以上設(shè)備相關(guān)信息,所以校方需要開發(fā)一個第三方WebService接口用于接收這些參數(shù)并存放在數(shù)據(jù)庫中。通過WebService接口,用戶打開客戶端進(jìn)行認(rèn)證登錄時,APP服務(wù)端調(diào)用此接口將設(shè)備相關(guān)參數(shù)信息傳給第三方,將用戶設(shè)備相關(guān)信息保存到第三方數(shù)據(jù)庫中,以備后用。
3.2.1 第三方需要提供Webservice接口要求
此接口需要包含2個方法以便對手機(jī)設(shè)備的esn、clientid和username進(jìn)行新增、修改和查詢。
(1)新增和修改方法:當(dāng)用戶第一次使用時需要上傳新增數(shù)據(jù),當(dāng)用戶換手機(jī)設(shè)備時需要對數(shù)據(jù)進(jìn)行修改。
(2)查詢:當(dāng)?shù)谌桨l(fā)消息推送請求后,通過此方法從數(shù)據(jù)庫中查詢esn、clientid和username信息,將消息推送給相關(guān)設(shè)備。
3.2.2 建立第三方數(shù)據(jù)平臺中間表TB_IAPPYHXXB
USERNAME varchar2用戶名,教師為8位工號,學(xué)生為11位學(xué)號
ESN varchar2手機(jī)設(shè)備號(每部設(shè)備號都是唯一的)
CLIENTID varchar2客戶端ID(客戶端打包后有這個id)
TYPE varchar2 身份類型(teacher,student)
3.2.3 WebService接口地址:http://xx.xx.xx.xx/iAPP/IappY-hxxbDAOImplPort?wsdl,WebService接口暴露的3個方法:
(1)userLoginSuccess(String username,String esn,String clientid,String type,String key)
參數(shù)param0:username,參數(shù)param1:esn,參數(shù)param2:clientid,參數(shù)param3:type,參數(shù)param:key,握手密鑰,約定為(zjipcnic163501)。
返回值:*返回值-1,握手不成功;*返回值0,SQL執(zhí)行錯誤;*返回值1,新用戶,記錄用戶username,esn,clientid,type;*返回值2,已有用戶,用戶更換登陸手機(jī),更新esn,clientid;*返回值3,已有用戶,正常成功登錄。
在客戶端,用戶CA認(rèn)證通過后調(diào)用此Webservice接口,返回數(shù)據(jù)格式為XML。
(2)findUsersByUsernameStr(String usernameStr,String key)
參數(shù)param0:usernameStr,用戶工號串以逗號分隔(如20060021,20020005),參數(shù) param1:key,握手密鑰,約定為(zjipcnic163501)。
返回值:若usernameStr中只包含一個學(xué)工號,返回單用戶信息,包括username,esn,clientid,type,若包含>1個學(xué)工號,返回相應(yīng)用戶信息集,包括username,esn,clientid,type,返回數(shù)據(jù)格式為XML。
(3)findUsersByType(String type,String key)
參數(shù) param0:type,取值為(teacher,student,all),參數(shù)param1:key,握手密鑰,約定為(zjipcnic163501)。
返回值:type=teacher,返回所有教師終端數(shù)據(jù)集,包括username,esn,clientid,type,type=student,返回所有學(xué)生終端數(shù)據(jù)集,包括username,esn,clientid,type,type=all,返回所有用戶終端數(shù)據(jù)集,包括username,esn,clientid,type,返回數(shù)據(jù)格式為XML。
圖1為手機(jī)APP帳戶登錄,獲取到登錄用戶統(tǒng)一身份認(rèn)證用戶名(USERNAME),身份(TYPE),手機(jī)設(shè)備號(ESN),客戶端ID(CLIENTID),保存到第三方數(shù)據(jù)平臺。
圖2為收集到的登錄用戶手機(jī)硬件及統(tǒng)一身份認(rèn)證帳號信息,可以針對特定用戶進(jìn)行APP消息推送。
圖1 手機(jī)APP帳戶登錄
圖2 獲取用戶手機(jī)設(shè)備相關(guān)信息
[1]王繪,尹治本.WebService的深入剖析與研究[J].電腦知識與技術(shù),2005(11):66-67.
[2]楊德仁,薛梅,顧君忠.WebService核心協(xié)議與實施研究[J].計算機(jī)系統(tǒng)應(yīng)用,2005,14(1):33-36.
[3]翁曉翔,羅鍵.基于Web Service的企業(yè)應(yīng)用集成方案[J].自動化技術(shù)與應(yīng)用,2005(10)
[4]Web services and flexible business pro-cesses:towards the adaptive enterprise.MoitraaD,Ganeshb J.Information and Management.2005
[5]IBM redbooks:Web Services Wizardry with WebSphere Studio Appli-cation Developer. WahliU,TomlinsonM,ZimmermannO,et al.http://www.red-books.ibm.com/redbooks.nsf/redbooks/.2002
[6]方小強(qiáng).基于Android的推送技術(shù)分析[J].電腦知識與技術(shù),2013(18):4180-4182.
[7]林佳作.基于長連接的移動終端消息推送系統(tǒng)的設(shè)計與實現(xiàn)[D].西安:西安電子科技大學(xué),2014.
[8]顧正敏.一種面向Android平臺的輕量級推送技術(shù)研究與應(yīng)用[D].北京:北京大學(xué),2013.
[9]戚海偉.信息推送平臺的設(shè)計與實現(xiàn)[D].西安:西安電子科技大學(xué),2013.
[10]王克鋒.基于Android的信息推送管理系統(tǒng)的設(shè)計和實現(xiàn)[D].大連:大連理工大學(xué),2012.
[11]宋新曉.基于android的push平臺功能的實現(xiàn)[D].北京:北京交通大學(xué),2011.
[12]趙革科.面向服務(wù)的異步消息中間件的研究與實現(xiàn)[D].長沙:湖南大學(xué),2009.
Research and Implementation of MobileAPP Message Push Mechanism Based on WebService
Chen Wei
(Zhejiang Industry Polytechnic College,ShaoXing 312000,Zhejiang)
This paper introduces the design mode of WebService,and gives a case of message transfer and interaction between heterogeneous mobile phone system andAPP campus network service platform based on WebService technology.
WebService;APP;isomerism;message push;one-stop service
TP311.52
A
1008-6609(2017)08-0045-03
陳蔚(1983-),男,浙江紹興人,高級工程師,碩士,研究方向為軟件工程、數(shù)據(jù)庫應(yīng)用。