基于WebService的手机APP消息推送机制研究与实现浅析
2017-11-02陈蔚
陈蔚
(浙江工业职业技术学院,浙江 绍兴 312000)
基于WebService的手机APP消息推送机制研究与实现浅析
陈蔚
(浙江工业职业技术学院,浙江 绍兴 312000)
简要介绍了WebService的设计模式,给出了一个通过WebService技术实现手机APP与校园网服务平台异构系统间消息传送与交互的案例。
WebService;APP;异构;消息推送;一站式服务
1 引言
随着智能移动终端的普及,师生通过手机获取学校信息和办理业务的愿望越来越强烈,传统的信息化门户的功能已经无法完全满足师生的移动访问需求。而且随着学生对手机的依赖性越来越强,学校需要考虑如何让学生合理利用手机进行学习、获取校园信息、办理学校业务以及及时将信息推送给目标师生手机用户等用途。
移动校园APP可以将校园内的生活、办公、学习、服务等各类信息进行分类整理,以智能终端设备、3G网络、无线网络、移动网络等各种移动技术为载体,把各类校园信息聚合起来,让广大师生不受地域、时间等客观条件的限制,仅需使用自己的移动设备便能够快速、准确地查询到自己想要的信息。目前校园中各个部门由于职能和分工不同,它们所管辖和负责的内容也不同,这样就导致了所有在校园内发布的信息都是零散的,不便于用户快速准确地找到想要的东西。由此,在移动校园客户端这样一个媒介下,它能够为在校师生提供一个更为便捷的平台来方便校园中的移动生活,同时该平台也能够高效地提高校园内准确有效信息的传播效率,有助于完善校园的智能化、移动化建设,让师生在校园中的移动生活更加简便和丰富。通过手机APP的信息推送功能,我们能将通知信息第一时间发送到学生手机里,缩短了消息通知的传达时间,扩大了消息送达人群的范围。基于此,本文介绍了通过WebService技术如何实现手机APP与校园网服务平台异构系统间消息的传送与交互。
2 WebService概述与层次结构
WebService是一个平台独立的、低耦合的、自包含的、基于可编程的web应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作应用程序。WebService使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,无论所使用的是什么语言、任何平台,都可相互交换数据或集成,并且减少了应用接口的花销。
3 WebService设计与实现案例
我校“i浙工院”手机APP客户端是一款集移动学习、移动办事、移动服务为一体的软件,为校内师生提供了一站式服务,方便校内师生进行校内信息查询、日常事务办理及部分校外查询。具体服务内容包括:校内通知查询、常用信息查询、成绩查询、课表查询、网上选课、考试安排、网络课程学习、宿舍水电费缴纳、考试报名缴费、失物招领、网络故障报修、后勤服务报修、OA通知查询、图书借阅、一卡通查询、挂失和充值、工会体育锻炼时长查询、工资查询、毕业生离校办理、校内常用信息查询等50多项功能。i浙工院客户端推出以来,受到了广大师生的欢迎,极大地方便了广大师生的校内学习生活,提高了办事效率。
以往学校给学生发通知需要由学校通知到分院,其次由分院通知到班级,再由班级通知到学生,信息传达的效率相对较低,现在,通过i浙工院的信息推送功能,我们能将通知信息第一时间发送到学生手机里。消息推送机制需要通过WebService实现。
3.1 用户打开客户端时,获取用户手机设备的相关信息
在进行手机端PUSH消息推送时,需要有客户端手机设备的相关信息记录,如手机设备号(esn,每部设备号都是唯一的),客户端ID(clientid,客户端打包后有这个id),CA登录用户名(username,新闻类推送给所有人不需要这个信息,但是像一卡通余额或其他定向的用户消息推送需要此信息)。
由于APP服务端在设计开发时并不存放用户的以上设备相关信息,所以校方需要开发一个第三方WebService接口用于接收这些参数并存放在数据库中。通过WebService接口,用户打开客户端进行认证登录时,APP服务端调用此接口将设备相关参数信息传给第三方,将用户设备相关信息保存到第三方数据库中,以备后用。
3.2 设计并实现第三方WebService接口
3.2.1 第三方需要提供Webservice接口要求
此接口需要包含2个方法以便对手机设备的esn、clientid和username进行新增、修改和查询。
(1)新增和修改方法:当用户第一次使用时需要上传新增数据,当用户换手机设备时需要对数据进行修改。
(2)查询:当第三方发消息推送请求后,通过此方法从数据库中查询esn、clientid和username信息,将消息推送给相关设备。
3.2.2 建立第三方数据平台中间表TB_IAPPYHXXB
USERNAME varchar2用户名,教师为8位工号,学生为11位学号
ESN varchar2手机设备号(每部设备号都是唯一的)
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)
参数param0:username,参数param1:esn,参数param2:clientid,参数param3:type,参数param:key,握手密钥,约定为(zjipcnic163501)。
返回值:*返回值-1,握手不成功;*返回值0,SQL执行错误;*返回值1,新用户,记录用户username,esn,clientid,type;*返回值2,已有用户,用户更换登陆手机,更新esn,clientid;*返回值3,已有用户,正常成功登录。
在客户端,用户CA认证通过后调用此Webservice接口,返回数据格式为XML。
(2)findUsersByUsernameStr(String usernameStr,String key)
参数param0:usernameStr,用户工号串以逗号分隔(如20060021,20020005),参数 param1:key,握手密钥,约定为(zjipcnic163501)。
返回值:若usernameStr中只包含一个学工号,返回单用户信息,包括username,esn,clientid,type,若包含>1个学工号,返回相应用户信息集,包括username,esn,clientid,type,返回数据格式为XML。
(3)findUsersByType(String type,String key)
参数 param0:type,取值为(teacher,student,all),参数param1:key,握手密钥,约定为(zjipcnic163501)。
返回值:type=teacher,返回所有教师终端数据集,包括username,esn,clientid,type,type=student,返回所有学生终端数据集,包括username,esn,clientid,type,type=all,返回所有用户终端数据集,包括username,esn,clientid,type,返回数据格式为XML。
4 实现效果展示
图1为手机APP帐户登录,获取到登录用户统一身份认证用户名(USERNAME),身份(TYPE),手机设备号(ESN),客户端ID(CLIENTID),保存到第三方数据平台。
图2为收集到的登录用户手机硬件及统一身份认证帐号信息,可以针对特定用户进行APP消息推送。
图1 手机APP帐户登录
图2 获取用户手机设备相关信息
[1]王绘,尹治本.WebService的深入剖析与研究[J].电脑知识与技术,2005(11):66-67.
[2]杨德仁,薛梅,顾君忠.WebService核心协议与实施研究[J].计算机系统应用,2005,14(1):33-36.
[3]翁晓翔,罗键.基于Web Service的企业应用集成方案[J].自动化技术与应用,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]方小强.基于Android的推送技术分析[J].电脑知识与技术,2013(18):4180-4182.
[7]林佳作.基于长连接的移动终端消息推送系统的设计与实现[D].西安:西安电子科技大学,2014.
[8]顾正敏.一种面向Android平台的轻量级推送技术研究与应用[D].北京:北京大学,2013.
[9]戚海伟.信息推送平台的设计与实现[D].西安:西安电子科技大学,2013.
[10]王克锋.基于Android的信息推送管理系统的设计和实现[D].大连:大连理工大学,2012.
[11]宋新晓.基于android的push平台功能的实现[D].北京:北京交通大学,2011.
[12]赵革科.面向服务的异步消息中间件的研究与实现[D].长沙:湖南大学,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-),男,浙江绍兴人,高级工程师,硕士,研究方向为软件工程、数据库应用。