面向移动平台的消息通讯服务设计与实现.doc_第1页
面向移动平台的消息通讯服务设计与实现.doc_第2页
面向移动平台的消息通讯服务设计与实现.doc_第3页
面向移动平台的消息通讯服务设计与实现.doc_第4页
面向移动平台的消息通讯服务设计与实现.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向移动平台的消息通讯服务设计与实现收稿日期:*;;修回日期:* 基金项目:国家自然科学基金资助项目(61173005);国家自然科学基金资助项目(61003029)通迅地址:100190北京市海淀区中关村南4街4号软件工程技术中心Address: Technology Center of Software Engineering, Institute of Software, Chinese Academy of Sciences, Beijing 100190, Hunan , P.R.China摘 要:由于移动平台网络和能耗方面的限制,应用开发者实现并维护一个移动端与服务器端可靠的、低能耗的消息通讯服务代价较高。面向移动平台的消息通讯服务为移动应用提供了即时的、可靠的消息通讯。同时结合移动端上下文信息丰富的特点,消息通讯服务提供了上下文情景感知的消息通讯方式。实验表明了此服务的可行性和低能耗特点。关键词:移动云计算,消息通讯,移动应用,中间件,上下文感知中图法分类号:TP31 文献标志码:ADesign and Implementation of Messaging Service for Mobile PlatformSHAO Xiao-zhe1), WU Guo-quan2), WEI Jun2),3) , HUANG Tao2),3)1)(Department of Computer Science and Technology, University of Science and Technology of China, Hefei 230027, China) 2)(Technology Center of Software Engineering, Institute of Software, Chinese Academy of Sciences, Beijing 100190, China)3)(State Key Laboratory of Computer Science, Institute of Software, Chinese Academy of Sciences, Beijing 100190, China)Abstract: For the limited network connectivity and tight power constraints, it is high-cost for app developers to construct and maintain a reliable and low-energy messaging service. What we do for the mobile platform provides instant and reliable messaging service to the app developers. Moreover, owing to the feature that mobile devices own plentiful context-aware information, messaging service provides messaging based on context-aware. Our experiments demonstrate the feasibility and the low energy consumption of the messaging service.Keywords: Mobile cloud computing, messaging, mobile apps, middleware, context-aware1 引言随着Internet、芯片等技术的发展,越来越多的移动智能终端进入人们的生活,许多功能新颖的移动应用大量涌现。利用移动设备的计算能力,这些应用正在深刻的影响着人们的生活方式。据信息技术研究和咨询公司Gartner称1,2013年,全球智能手机和平板的销量将迅猛增加50%,有望达到12亿台,这一数据在2012年为8.21亿台。而在Android与iOS两大主流移动平台上的应用数量也已接近100万款。移动平台之上的应用与现有的桌面应用相比,本文关注以下几点区别:大量的移动平台应用依赖网络链接与后台服务通讯。而在高延迟、多变的蜂窝网络环境下,实现移动端与服务器端的可靠、高效通讯是一件很有挑战的事情。由于移动设备电能供应的局限性,对于移动应用,特别是涉及网络操作的模块,能耗问题受到越来越多的关注。由于移动设备包含了更多的个人隐私信息,因此,移动应用如何合理的收集、管理与利用移动端上下文信息也是许多移动应用面临的问题之一。而上下文感知系统2, 3,特别是与移动设备相结合的上下文感知系统也是近三十年来国内外的研究热点。针对以上移动应用的特点,作者设计并实现了一个面向移动平台的消息通讯服务。服务中的云端Pub队列以及移动端的消息过滤模块保证了移动环境下应用层消息的可靠传输。采用基于链路复用的技术,有效地降低了消息通讯的能耗代价。同时,利用移动端上下文信息,本文的服务提供了更加丰富的消息通讯功能。此外,消息通讯服务提供“即插即用”式的接入方式,易于使用,节省了应用开发者在消息通讯功能方面的服务器开销。本文余下章节将详细介绍系统设计与实现,其组织如下:第二节介绍移动领域消息通讯服务平台方面学术界与产业界的相关工作;第三节描述了一个消息通讯服务的典型应用场景;第四节描述服务的架构及其特点;第五节展示实验评估;最后总结并探讨未来工作。2 相关工作为了简化移动应用的开发,Yahoo!和MIT的研究人员开发了一个统一的数据管理和消息通讯平台:Mobius4。Mobius针对移动端应用,提供了异步地读写数据、推送通知等功能,并在其移动端针对移动网络的特点实现相应的缓存策略。Google的Atul等人实现了一个移动端通知服务Thialfi5。其主要关注点在于提供一个跨平台的(浏览器、手机、桌面)、支持多语言的(Java, C+, Javascript)、直接易用的API,以及提供服务器端针对各种类型错误的容错能力。以上工作都涉及了移动端的消息通讯,但都没有关注和利用移动端丰富的上下文信息。Microsoft的Suman Nath提出了一个针对移动端的,支持持续上下文感知移动应用的中间件ACE6。ACE通过推理缓存(inference caching)和投机性感知(speculative sensing)技术,降低移动应用在获取移动端上下文情景信息时的能耗。其中推理缓存是指通过一个已知的上下文属性(例如正在开车),推理出另外一个属性(例如在家)的值。而投机性感知是指通过获取一个能耗代价较小的属性(例如正在开车,需要259mJ),推断出一个代价较大的属性(例如在家,需要605mJ)。这类工作可以很好的整合到消息通讯服务的移动端,用于低能耗地收集并推理上下文情景信息。Pub/Sub7, 8, 9, 10作为一类重要的消息通讯事件模型,实现了消息发布者与消息订阅者间的解耦,其解耦主要指以下三个方面:时间、空间、同步/异步。在消息通讯服务中,由于移动应用场景中消息的发送者可以描述出消息接收者的特征,不需要深度解耦,因此典型的pub/sub模型并不可直接使用。随着移动应用的兴起,工业界也出现了一些提供移动端推送功能的商用服务。国内有专门提供推送服务的服务提供商,如个推11、极光推送12,他们关注从移动应用服务器端向移动端的通知推送并在移动端通知栏显示,而没有利用用户的上下文信息,给移动应用开发者更精准推送的能力。国外的BaaS13(后端即服务)服务提供商像Parse14、StackMob15也提供了通知推送服务,但类似于个推与极光推送,主要关注点对点或者广播型的通知推送。本文的消息通讯服务不仅提供稳定的、低能耗的通讯,还把移动端上下文信息结合到消息通讯中,为消息通讯服务提供更丰富的功能。3 典型场景在此应用场景中,需要在移动应用的服务器端与移动应用间建立一个即时消息通讯机制,满足以上场景中的需求。除了满足即时性要求外,还需要关心移动端上下文,此场景中关心的是当前用户地理位置、所在时区、甚至于用户的工作地点。在移动环境下,提供上下文情景感知的消息通讯服务具有很强的应用需求,一个典型的应用场景如下:类似于大众点评一类的应用,如果想要推荐某个餐馆的打折优惠信息,那么他会十分关心向哪一类用户推荐此餐馆,什么时候推荐。首先,如果是快餐馆,那么一定是在工作日的中午,通知距离此快餐馆较近(可能是1公里以内)的移动应用用户,因为上班族中午吃饭时间较短,对距离近的快餐馆会比较感兴趣。另外,如果是核心商圈的高档餐馆,周末的傍晚在此商圈逛街的用户会更感兴趣。Figure 1 System Constrution图 1 系统架构4 系统架构为应对上述需求,本文设计并实现了一个面向移动平台的消息通讯服务,系统架构如图1所示,包含移动端与云端服务两部分。12344.1 移动端架构移动端提供了通讯服务以及与其相关的函数库(Lib)。移动应用通过Lib与设备端通讯服务交互,接收或发送消息。一个移动设备同一时间只有一个通讯服务与云端保持长连接,多个移动应用通过不同的Lib实例与这同一服务交互。当移动端有多个应用使用此服务时,这种链路复用的方式,可以大大减少流量和能耗开销。信息收集模块负责收集移动端的上下文信息,包括收集移动端设备相关的上下文信息和移动应用提供的应用相关上下文信息。由于多个移动应用使用同一个移动端通讯服务,消息中心负责将接收到的消息解析并发送给对应的移动应用。上下文缓存与过滤模块在移动端缓存上下文信息,并记录已接收到的消息。此模块在接收到消息时,会通过本地的上下文缓存判断消息的正确性,即是否符合本地当前的上下文,对不符合的消息进行过滤。例如:如果用户地理位置信息已经发生变化,但云端尚未感知到,则当通知消息到达时,此模块可以保证消息被及时过滤。另外,为了保证消息的可靠到达,每个消息到达后都需要移动端的消息回执。在没有收到回执时,云端将重新发送同一消息。为避免网络异常等原因造成的重复消息到达移动应用,消息过滤模块会通过记录消息的ID丢弃重复的消息。4.2 云端架构云端的通讯接口有TCP长连接与Restful两种方式。其中移动端通过长连接与云端进行消息通讯,移动端和移动应用服务器端通过Restful风格接口注册并使用消息通讯服务。4.2.1 TCP长连接为了实现即时通讯功能,消息通讯服务使用TCP长连接与移动端保持通讯。Session管理模块负责维持云端与移动设备的TCP长连接,并将移动端上下文信息通过上下文管理模块持久化。所谓长连接指在一个TCP连接上,可以连续发送多个数据包。在TCP连接保持期间,如果没有数据发送,为了保持连接,需要定期发送心跳包,直到一方关闭连接或者发生网络异常等情况。另一种短连接的通讯方式是指每次有数据传输时建立一个新的连接,并在数据传输完毕时马上关闭连接。短连接比较适合从移动端向服务器端主动发起请求,而以此方式实现服务器端向移动端主动传输数据时则一般使用轮询的方式,即移动端定期的连接服务器端并检查是否有新的内容。然而,轮询的时间间隔很难设定,较长的时间间隔影响通讯的实时性;较短的时间间隔会使移动端反复建立新的连接,消耗资源,特别是在服务器端数据更新并不频繁或没有规律时。在此应用场景下,为保证实时性使用长连接是更好的选择。4.2.2 Pub队列另一类Restful风格接口的消息通讯请求,由Pub队列模块处理。其内部结构如图2所示。所有接收到的消息,都会在对应APP(移动应用)队列组中新建此消息的一个队列。对于点到点的通讯或者面向所有移动端的通讯,会在队列中加入某个移动端的sessionID或者加入与此APP相关的所有移动端的sessionID。对于上下文情景感知的通讯消息,上下文检索引擎可以根据消息中的上下文描述,在上下文管理模块中找到对应的移动端sessionID,并将这些sessionID加入相应队列。Pub队列会根据消息队列中的sessionID,通过Session管理模块将消息发送给移动端。为保证消息的可靠到达,Session管理模块将消息的发送情况反馈给Pub队列。对于未发送成功的SessionID会继续保留在队列中,间隔一段时间再试;对于暂时未与云端连接的移动端会在其上线后发送消息。Figure 2 Interior Construction of Pub Queue图 2 Pub队列内部结构4.2.3 上下文管理本文关注的上下文信息主要分为两个方面:设备相关的上下文信息:除了设备自身的相关信息,比如型号、操作系统版本、设备自带哪些传感器之外,移动端、特别像智能手机这类设备还包含了丰富的个人信息,合理利用这些上下文信息可以使移动端更加地“智能”。比如设备当前的位置,利用这个上下文信息,就像上文提到的,天气预报就可能通过移动端的位置信息决定是否推送天气预警。应用相关的上下文信息:每个移动应用都有与其应用相关的上下文信息,例如,应用的版本号、应用的账号信息等。通过这些自定义的上下文的信息,移动应用开发者可以更精细的找到消息通讯的对象。本文使用key-value模式进行上下文建模,不仅收集设备相关的上下文信息,同时也接受移动应用提供的应用相关的上下文信息。基于这两类上下文信息实现基于上下文情景感知的通讯。本文定义了上下文相关模型,来描述上下文、消息、Session和基于上下文信息的检索。采用16中提到的上下文模型,即上下文是一个三元组的集合(x1,t1,v1),(xn,tn,vn),其中ti是xi的类型,vi是xi的值。例如,本文3.1节中提到的应用场景而言,位置上下文可以表示为(location,string,beijing)。系统现在支持的上下文类型如表1所示:Table 1 Examples of Context Type表1 上下文类型示例上下文类型上下文数据示例String位置beijingFloat纬度116.3Int年龄30Boolean在开车trueTime连接云端时间17:22Data初次连接日期2013/4/105 实验评估为了验证在消息通讯服务中使用长连接的可行性,以及使用链路复用技术在能耗方面的优势,并完成以下实验。5.1 实验设计与实验数据移动端测试设备为小米手机,双核1.5GHz,1GB RAM,操作系统为基于Android4.0.4版本的MIUI。使用PowerTutor1718作为测试工具,PowerTutor作为一个Android应用可以监控系统之上的每个应用在LCD,CPU,WiFi,3G四个模块的能耗情况。实验中,采用WiFi作为网络连接的方式,而且作为后台服务不使用屏幕,因此只关心CPU和WiFi模块的耗能。实验分为三种类型:第一类,单个应用建立并保持一个TCP长连接;第二类,同一手机上两个应用(不使用链路复用技术),建立并保持两个TCP长连接;第三类,同一手机,两个应用共用一个TCP长连接。以上实验中,连接建立后,没有消息通讯,仅通过心跳包维持长连接。每类实验进行5次,实验数据取平均值如表2所示Table 2 Experence data表2 实验数据实验类型测试时长应用1能耗应用2能耗第一类30分钟2.9J无第二类30分钟3.1J3.0J第三类30分钟3.1J45mj5.2 实验分析由第一类实验可知,维持长连接而不进行通讯,每小时大约消耗6J能量,而现在智能手机锂电池电量普遍为2000mAh左右,电压为3.7V,即能做功26640J,支持4440小时长连接。这样的消耗是完全可以接受的。根据第二类和第三类实验的数据可以明显得出链路复用有效的减少能耗。其中,第二类实验中两个应用要各自建立并维持长连接,能耗是第三类的两倍。而在第三类实验中,应用2因为与应用1共用一个长连接,只需要极少的能耗(主要是CPU)初始化并绑定到这个长连接即可。并且复用同一连接的应用越多,能耗节省越多。6 结束语移动互联网的发展如火如荼,近年来,学术界在移动领域也有很多重要成果。本文针对移动平台网络、能耗受限并且上下文信息丰富的特点,提出了一个消息通讯服务的设计与实现,并提供了基于上下文情景感知的通讯服务。基于此服务可以实现实时、稳定、低能耗的消息通讯,并且降低移动应用的开发与维护成本。在云端收集用户的上下文信息,可能会存在用户隐私方面的隐患。这将是我们下一步的主要研究方向。参考文献:1 /smart-device-sales-to-hit-1b-next-year-gartnerZ2 Baldauf M, Dustdar S and Rosenberg F. A survey on context-aware systemsJ. International Journal Ad Hoc and Ubiquitous Computing. 2007, 2(4): 263277.3 Hong J Y, Suh E H, Kim S J. Context-aware systems: A literature review and classificationJ. Expert Systems with Applications,2009,36: 8509-85224 Chun B G, Curino C, Sears R, etal. Mobius: Unified Messaging and Data Serving for Mobile AppsC / Proc of the 10th International Conference on Mobile Systems Applications and Services, 20125 Adya A, Cooper G, Myers D, etal. Thiualfi: A Client Notification Service for Internet-Scale ApplicationsC / Proc of the 23rd ACM Symposium on Operating Systems Principles, 20116 Nath S. ACE: Exploiting Correlation for Energy-Efficient and Continuous Context SensingC / Proc of the 10th International Conference on Mobile Systems Applications and Services, 20127 Eugster P T, Felber P A, Guerraoui R, etal. The many faces of publish/subscribeJ. ACM Computing Surveys, 2003,35(2):114-131.8 Vavassori S, Soriano J, Lizcano D, etal. Explicit Context Matching in Content-Based Publish/Subscribe SystemsJ. Sensors 2013, 13: 2946-2966.9 Huang Y Q and Garcia-Molina H. Publish/Subscribe in a Mobile EnvironmentJ. Wireless Networks, 2004,10: 643-652.10 Cugola G, Jacobsen H A. Using Publish/Subscribe Middleweare for Mobile SystemsJ. ACM SIGMOBILE Mobile Computing and Communications Review, 2002, 6(4):25-33. 11 Homepage of GeTui:/z12 Homepage of JPush:/z13 /articles/20-baas-startup-companies-2012.htmlz14 Homepage of Parse:/z15 Homepage of StackMob:/z16 Roman G C, Julien C and Payton J. A formal treatment of context-awarenessC / Proc of Fundamental Approaches to Software Engineering, 7th International Conference. Barcelona, Lecture Notes in Computer Science, 2004, 2984:12-3617 Dong M and Zhong L, Self-constructive, high-rate energy modeling for battery-powered mobile systemsC / Proc of ACM/USENIX Int. Conf. Mobile Systems, Applications, and Services (MobiSys), 201118 /projects/powertutor/documentation.htmlZ作者简介: 稿件编号:*姓名邵小哲出生年1987性别男籍贯山东省广饶县学历(中文 /英文)硕士生Master Candidate职称(中文 /英文)无职务无CCF会员号研究方向(中文 /英文)软件工程与分布式计算 Software Engineering and Distributed Computing联系电-mailS通讯地址(中文 /英文)北京市海淀区中关村南4街4号软件工程技术中心Technology Center of Software Engineering, Institute of Software, Chinese Academy of Sciences, Beijing 100190, Hunan , P.R.China邮政编码100190姓名吴国全出生年1979性别男籍贯安徽省合肥市学历(中文 /英文)博士 Do

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论