王培海,刘宴兵,2,肖云鹏,陶长顺
(1.重庆邮电大学移动互联网中心 重庆 400065;2.重庆重邮信科通信技术有限公司 重庆 400065)
随着3G、LTE等移动通信技术的不断发展,移动互联网带宽得到大幅度的提升,通过移动设备访问互联网,获取自己所需的信息的方式,成为一种新的趋势并逐渐融入到人们的日常生活中,催生出丰富的移动应用。为了缓解终端压力,应当转移终端应用的需求来源,云计算[1]是一个很好的选择。移动设备的易携带和移动性限制了其对资源的拥有。云计算虽然聚合了丰富的计算和存储资源,但移动性较差。将云计算与移动互联网有机结合[2],终端应用对资源的高需求转移到云平台上,在真正意义上实现轻量级终端访问互联网的瘦终端,满足移动用户对快速响应时间的期望,同时使移动用户可以随时、随地获取云计算服务,这正好体现了“anytime,anywhere”的思想。
本文研究基于云计算与SOA架构的移动应用,参照“云+端”的设计模式,移动设备以中间件的方式获取云服务。针对移动设备的弱计算环境,造成访问效率较低的特征,本文提出移动设备通过中间件方式访问云服务,较好地解决了终端环境资源受限的瓶颈。
云计算是一种新型的计算模型,它通过互联网将计算任务分布在大量计算机构成的资源池上,使用户按需获取各种信息服务[3]。移动云计算在云计算基础上发展而来,给移动互联网的发展注入新的活力。目前,移动云计算在学术界得到广泛的重视,各个研究机构纷纷开始做相关研究。惠普实验室将云环境下的资源与SOA服务模式紧密相连[4],将云资源以服务提供的方式供用户使用,降低了运营商的IT成本。但并没有考虑移动终端用户的环境因素,只是针对传统的Web终端。加拿大彻温大学对智能终端使用移动云服务做了相关研究[5],提出一种基于云计算的服务中间件,解决终端访问云服务的关键问题。但对于该中间件应用的开发比较单一,不能为多终端异构平台提供一个统一的编程接口。Berkeley有学者提出一种新颖的克隆云架构[6],将终端应用上资源密集型的计算或存储转移到具有终端运行环境的云平台上,以此增强终端应用的能力。不足的是这种模型仅针对智能终端,并没有对普通移动设备加以考虑。因此,针对移动应用调用云计算能力的缺陷,将中间件技术引入到终端应用的开发中,通过中间件提供的统一编程接口,来屏蔽多终端平台之间的差异性,减少终端应用重复开发的成本,对移动应用的发展有比较深远的意义。
Web服务为多终端异构平台资源协同提供了有效的手段。但在移动环境中,网络带宽、内存大小、计算能力、存储空间以及电源的续航能力等资源非常受限[7]。传统的Web服务已经无法较好地满足移动环境下异构设备互联互通的需求。因此,资源受限的移动设备如何有效地使用云服务,得到学术界、工业界的高度重视。云服务中间件集成了云计算能力的中间件平台,能够动态调度底层虚拟资源满足云端业务需求,能够对分布式存储提供扩展支撑能力[8]。资源受限的云服务是云计算与移动网络、服务计算和嵌入式系统相结合的产物,在移动终端应用等领域有广阔的应用前景[9]。
众所周知,云计算服务端聚合了丰富的计算和存储资源,通过SOA技术将云计算资源以服务的形式发布出去,供不同的移动设备访问,解决移动环境资源受限的瓶颈。移动设备通过中间件获取云服务接口,充当移动设备和云服务端之间的桥梁,同时也是云服务的提供者和使用者。云服务中间件通过建立Web应用服务器实例,来屏蔽不同终端操作系统的异构性,提供统一的计算存储平台和运行环境。本文设计了一种面向移动设备的云服务中间件模型,其系统架构如图1所示。
移动设备端的逻辑结构较为简单。Input/Output用于访问中间件,把用户输入的参数发出去,等待返回结果,在移动设备上显示出来。环境感知模块用于实时监控设备的网络状况、电池容量等,当到达一定阈值时,中断与中间件的连接。RM(record manager)用于保存数据记录,可以将云服务端返回的数据保存在本地的移动设备上,便于用户在网络中断后可以继续访问这些数据。
云服务器端主要业务逻辑体现在云服务注册中,将计算和存储资源以服务的形式发布出去,同时添加到云服务注册模块中,中间件层通过云服务接口对云服务进行访问。考虑到移动设备的弱处理能力,对云服务返回的复杂数据进行相应处理,使得适应终端显示。缓存模块主要用于对云服务端返回的大量数据进行临时存储,缓解终端接收的压力。
当中间件收到服务请求时,检索用户所要求的服务是否存在,如果请求的服务存在,就将云服务接口返回给服务调用模块,由它完成具体服务的调用。如果没有相对应的服务,表示服务不存在,给移动设备返回出错信息。访问流程如图2所示。
中间件作为移动终端和云服务器之间的一层支撑软件,一方面给移动终端提供访问云服务的平台,以便移动用户可以无缝地访问云服务器上的资源。另一方面负责移动终端与云服务端的通信,符合“中间件=平台+通信”的定义。由于移动环境的特殊性和移动网络的不稳定性,因此面向云服务的移动中间件的关键技术包括以下两个方面。
移动云服务是将网络中的各种资源有效地聚合在一起,为移动用户服务。因移动用户要在多个无线网络间不断地切换,访问云平台提供的不同服务,因此需要采用云服务发现技术来找到所需的云服务。本文采用一种SOA服务发现机制 UDDI(universal description,discovery and integration)[10],移动终端利用它可以发现暴露给终端的云服务。云平台作为服务的提供者将自身的服务以WSDL发布到注册中心,供请求方调用;移动终端作为服务请求方查找相应的服务,以WSDL调用服务,通过SOAP协议与云平台进行交互,其体系结构如图3所示。
本文的移动云服务发现机制是一种用于建立高度动态C/S的协议集合,将移动端和云平台之间的交互标准化。移动用户与云平台间最基本的交互是云服务的发现。云服务发现定义了移动终端用户如何找到服务目录,进行服务注册或匹配的协议,支持多种协议形式,包括单播发现、多播发现和广播发现等。云服务目录提供了集中式的注册机制,云服务在服务目录中暴露其服务信息,移动用户通过查找目录或服务发现机制找到所需服务。在整个云服务发现过程中,中间件通过IaaS层的服务接口动态创建虚拟机,并完成业务逻辑的部署,根据云端业务的并发访问情况动态调度云中底层的虚拟资源,实现资源对云端用户的透明,集群技术能力向中间件上转移的一种动态实现,真正实现计算和存储能力的弹性伸缩。同时,还提供垃圾收集功能,主要是实现系统的自愈合功能,当服务退出网络或出现异常导致云服务不再可用时,借助垃圾收集机制删除服务的相关状态信息,回收资源。
考虑到移动终端资源受限的瓶颈,在中间件平台中用并行数据处理模块来对数据进行相应的处理,使其满足移动终端对数据实时响应和时延较小的要求。综合移动终端的这些缺陷,将交互数据按2 MB大小进行分块,并将其按一定次序标记,同时为每个数据块分配一个线程。另外,新开辟一条线程用于发送控制信息,指明数据所对应的文件块序号以及文件相关信息。云服务端将接收到的文件块保存到一个临时文件中,当接收到文件块的数量与控制信息中数量一致时,则表示数据接收完成,同时按相应次序合并文件块,删除临时文件。终端数据传输速度快,网络利用率高,终端数据时延较小,用户体验度在很大程度上得到提高。其流程如图4所示。
考虑到电源的续航能力,通过采用并行数据传输技术解决了终端海量数据传输的系统承载能力问题。该模块的核心功能是将传输的数据按照一定的要求进行分块处理,并按顺序标记每块数据,对中途数据块传输失败的数据支持断点续传,这在一定程度上解决了以往由于数据传输量过大而导致的传输耗时较长、数据传输频繁失败、数据更新不及时等问题。由于移动网络是动态变化的,保证终端数据与云服务端的数据一致性,采用缓存技术来降低终端的负载,提高数据传输速度,增大用户体验度;同时存储访问度较高的数据,减少终端的时延。
为了更好地对中间件做出评估,系统测试由硬件环境和软件环境两部分组成。硬件环境是由5台普通PC机构成的集群系统;软件环境由Ubunt 9.04和Android 2.2模拟器构成。
为验证模型的可行性与稳定性,在此基础上开发了一个面向移动终端的云备份系统,将备份作为一种服务提供给移动终端,对云备份的数据传输速率进行测试,以判断系统的稳定性,如图5所示。从图中可以看出,手机云备份系统的传输速率能够维持在一个相当稳定的状态下,从而间接说明该中间件模型的稳定性与可靠性。同时,基于中间件的云备份系统将终端数据备份到云平台上,有效地解决了移动设备存储空间的不足,在较大程度上解放终端受限的约束,用户体验度得到提高。
随着移动终端设备的快速发展,云计算模式受到广泛关注,未来将会有更多的移动用户采用移动设备享用云服务。考虑到移动设备资源受限的瓶颈,本文结合云计算、中间件以及SOA的相关技术实现了面向云服务结构的移动中间件模型,为在移动环境下访问云服务提供了一种通用解决方案;通过中间件技术将云服务封装成一个统一的接口,降低了终端应用重复开发的成本,真正意义上实现了跨不同终端异构平台之间的交互,同时利用多线程技术对终端数据进行并行分块处理,使得数据传输速率得到提高,终端用户体验度增强。未来的工作将集中在提供多协议支持、安全以及离线处理上,并对服务质量保证做深入研究。
1 Michael A,Armando F,Rean G,et al.A view of cloud computing.Communications of the ACM,2010,53(4):50~58
2 Srikanth B,Kamlesh D.A cloud based software testing paradigm formobile applications.ACM Software Engineering Notes,2011,36(4):1~4
3 刘鹏.云计算.北京:电子工业出版社,2010
4 Afkham Azeez,Srinath Perera,Dimuthu Gamage,etal.Multi-tenant SOA middleware for cloud computing.In:IEEE 3rd International Conference on Cloud Computing,Miami,Florida,USA,2010
5 Qian Wang,Ralph Deters.SOA’s last mile connecting smartphones to the service cloud.In:IEEE International Conference on Cloud Computing,Los Angeles,California,USA,2009
6 Byung-Gon Chun,Petros Maniatis.Augmented smartphone applications through clone cloud execution.In:Proceedings of the 12th Conference on Hot Topics in Operating Systems,Switzerland,May 2009
7 李刚,孙红梅,李智等.资源受限的Web服务.计算机学报,2010,33(2):193~207
8 Fung Po Tso,Lin Cui,Lizhou Zhang,et al.Building a platform to bridge low end mobile phones and cloud computing services.ZTE Communications,2011,9(1):22~26
9 Jianzong Wang,Varman P,Changsheng Xie.Middleware enabled data sharing on cloud storage services.In:the 5th International Workshop on Middleware for Service Oriented Computing,Bangalore,India,2010
10 余浩,朱成,丁鹏.SOA实践.北京:电子工业出版社,2009