移动互联网应用模块的部署方法
【专利摘要】本发明公开了一种移动互联网应用模块的部署方法,通过将终端接入到服务端,并采集终端的状态信息传输到服务端,服务端通过应用当前的贝叶斯网络预测模型计算出此终端上应用模块的最佳部署方案再回传给终端,提高了应用的服务质量和运行效率。其次,将应用抽象成多个的服务模型,这样简化了应用的拓扑结构,降低了应用复杂度,同时解决了以往应用模型用于复杂应用时导致应用部署方案计算执行效率低的问题;在终端的运行应用过程中,实时采集此时终端所处服务模型中所涉及到的应用模块基本信息及终端状态信息,并定时传输给服务端,服务端使用这些信息更新应用的贝叶斯网络预测模型,从而使得有新终端接入时可以获得更加准确的部署方案。
【专利说明】移动互联网应用模块的部署方法
【技术领域】
[0001] 本发明属于互联网通信【技术领域】,更为具体地讲,涉及一种移动互联网应用模块 的部署方法。
【背景技术】
[0002] 移动互联网应用已经引发了信息产业的深度变革,应用具有分布性广、移动性强 的特点。一个移动互联网应用完整的业务流程一般会涉及到终端和服务端的交互,例如苹 果手机的智能语音助手Siri,手机终端采集用户的语音并进行识别,然后将识别后的信息 传输至服务端,服务端将这类信息进行识别后得到了用户意图,然后根据此意图进行知识 搜索,并将搜索得到的结果传回手机终端展现给客户。在这个业务流程当中,手机终端负责 采集用户的语音并进行识别,以及最后结果的展示。但是同样是语音助手,基于Android系 统的大部分手机都是将语音流传输到服务器,在服务器上完成语音的识别。其中最主要的 原因在于如果在手机终端完成语音识会耗费手机大量的CPU资源及电量;而如果将语音流 传输至服务器的话可以节省CPU资源及电量,但另一方面又会耗费大量的网络通信带宽。 这个例子说明,一个移动互联网应用由多个功能模块组成(如例子中的语音识别模块,知 识搜索模块),其中有一部分功能模块既可以在终端运行,也可以在服务端运行,需要根据 具体情况来进行判断。如何判断哪些功能模块在终端或者服务端运行可以使得应用用户体 验最好就是应用功能模块部署所要解决的问题。除此之外,大规模应用微信或WhatsApp的 用户数量都达数亿,而应用本身集成的独立功能模块越来越多,如微信平台的朋友圈,对讲 机,实时视频等。如何对于具有海量用户的移动互联网应用提供有效的应用部署方案也是 一项挑战。
[0003] 应用部署指的是根据终端目前状态以及应用本身复杂度来决定应用中哪些功能 模块在服务端运行,哪些功能模块在终端运行可以使应用服务质量最好,系统性能最优。
[0004] 当前研究工作多是针对单一平台上简单应用提出的应用部署流程,部署方案不 优,且不适用于大型应用。而这些方面正是移动云计算应用从理论走向实际所需要解决的 关键问题。移动互联网应用部署主要涉及到以下几个方面:
[0005] (1)应用模型:不仅需要能简洁的反映出整个应用的拓扑结构,也需要反映出应 用所包含模块间的交互以及依赖程度。当前的研究有几种主流的观点,分别是将应用的功 能模块表示成图的拓扑结构,树的拓扑结构和弹性应用模型。但这几类模型对简单应用较 为适用,一旦应用复杂度增加,应用模块间相关程度增大,其拓扑结构复杂度会增大,直接 影响了应用部署的效率及准确性;
[0006] (2)海量应用运行时数据的采集及处理:应用的合理部署依赖于准确的预测,而 预测模型需要大量数据进行前期训练并不断更新,这些数据由用户使用应用时上传到服务 端或服务端的信息组成。如何搜集和存储数以亿计的应用运行时信息,分类整理后传递给 应用部署算法进行处理就成了前提条件,这里会涉及到海量数据的采集,存储以及如何与 后期部署算法整合;
[0007] (3)应用部署算法:应用部署指的是根据终端首次接入应用时的环境和状态选择 出最合适的部署方案,将应用中的模块按一定策略部署到移动端或服务端,以达到应用在 这种环境和状态下最优的用后体现和系统性能。如何确定最合适的部署方案一般通过部署 算法计算得出。应用部署算法主要分为静态算法与动态算法两种,静态算法具有较高的准 确性,但计算量大,一般通过分类或聚类算法先期计算出预测模型,这意味着需要采集大量 的用户数据来完成机器学习,从而在新用户接入应用时服务端可以快速给出恰当的部署方 案;而动态算法不需要进行前期学习,根据终端首次接入应用时的状态进行实时的计算,性 能及准确性不高。
【发明内容】
[0008] 本发明的目的在于克服现有技术的不足,提供一种移动互联网应用模块的部署方 法,通过MapReduce框架对数据进行采集和存储,再通过贝叶斯网络算法获取到最佳的部 署方案,使终端与服务端得到有效融合,具有可扩展、高灵活以及高效率的性能。
[0009] 为实现上述发明目的,本发明一种移动互联网应用模块的部署方法,其特征在于, 包括以下步骤:
[0010] (1)、在服务端对应用的贝叶斯网络预测模型进行初始化;服务端在首次运行时, 通过人为设置应用中每个应用模块在终端或服务端运行的概率来初始化应用的贝叶斯网 络预测模型;
[0011] (2)、终端接入到服务端;
[0012] 服务端实时监测终端是否接入到服务端,如果终端接入到服务端,则终端将此时 的状态信息传输至服务端,进入步骤(3);
[0013] 如果没有监测到终端接入到服务端,则将应用的贝叶斯网络预测模型保持在初始 化状态;
[0014] (3)、通过当前的贝叶斯网络预测模型计算出此终端上应用模块的最佳部署方 案;
[0015] 服务端接收到终端传输的状态信息后,通过贝叶斯网络基本算法,计算出应用中 每一个应用模块在服务端或终端执行的概率,其计算公式为:
【权利要求】
1. 一种移动互联网应用模块的部署方法,其特征在于,包括以下步骤: (1) 、在服务端对应用的贝叶斯网络预测模型进行初始化;服务端在首次运行时,通过 人为设置应用中每个应用模块在终端或服务端运行的概率来初始化应用的贝叶斯网络预 测模型; (2) 、终端接入到服务端; 服务端实时监测终端是否接入到服务端,如果终端接入到服务端,则终端将此时的状 态信息传输至服务端,进入步骤(3); 如果没有监测到终端接入到服务端,则服务端将应用的贝叶斯网络预测模型保持在初 始化状态; (3) 、服务端通过当前的贝叶斯网络预测模型计算出此终端上应用模块的最佳部署方 案。 服务端接收到终端传输的状态信息后,通过贝叶斯网络基本算法,计算出应用中每一 个应用模块在服务端或终端执行的概率,其计算公式为:
0。表示某一应用模块在服务端或终端的运行概率,Cl表示此应用模块所有可能的执行 位置,在这里只用考虑在终端或服务端执行两种情况&表示应用模块的基本信息;^_表示 终端状态信息;L表示应用具有的L个功能模块的基本信息,Μ表示Μ个终端状态信息;结 合应用模块的运行概率,服务端根据当前的贝叶斯网络预测模型计算出合适的应用模块部 署方案,并将此方案回传给终端; (4) 、终端按照服务端回传的部署方案部署应用模块运行在终端或服务端; (5) 采集当前终端的状态信息和访问服务模型涉及到的应用模块的基本信息,并传输 给服务端; 在应用运行期间,每个终端在同一时刻只能访问应用中的某个服务模型,并监控运行 在终端上的此服务模型涉及到的应用模块,同时定时采集当前终端的状态信息和此服务模 型涉及到的应用模块的基本信息,并将采集的所有信息定时传输给服务端,在应用运行期 间,用户可以随时退出应用,退出应用时,终端停止监控; (6) 、服务端对接收信息进行处理;服务端将接收的应用模块信息和终端状态信息缓存 在服务器的内存上,待缓存数据达到规定大小后以分布式文件系统数据块存入到分布式文 件系统中; (7) 、服务端通过MapReduce框架来处理数据并更新应用的贝叶斯网络预测模型; 当服务端监测到分布式文件系统生成一个新的数据块后,就创建一个新的任务,并分 配给计算机集群中的空闲工作站进行MAP处理,Maper对每条数据进行分类处理后传输给 对应的Reducer,Reducer再通过机器学习算法满足一定条件后更新应用的贝叶斯网络预 测模型。
2. 根据权利要求1所述的移动互联网应用模块的部署方法,其特征在于,所述的应用 为网络中应用模块和应用模块间的关系拓扑,一个应用由若干个服务模型组成。
3. 根据权利要求1所述的移动互联网应用模块的部署方法,其特征在于,所述终端的 状态信息包括:终端所接入的服务器、终端当前电量、终端当前网络状况、终端当前CPU负 载、终端当前可用的内存及存储空间; 所述应用模块的基本信息包括:应用模块的类型、应用模块所处的服务模型、应用模块 所占用的存储空间、应用模块运行时所占用的内存空间、应用模块在终端运行时所消耗的 电量、应用模块在终端运行的累计时间、应用模块的数据输入量、应用模块的数据输出量。
4.根据权利要求1所述的移动互联网应用模块的部署方法,其特征在于,所述应用的 贝叶斯网络预测模型更新条件满足为: 1) 、超过30%的终端上传的数据表明某应用模块在移动设备上运行时间长于一定值; 2) 、超过30%的终端上传的数据表明某应用模块在移动设备上耗费电量多于一定值; 3) 、超过30%的终端上传的数据表明某应用模块在移动设备上与服务端发生通信数据 量大于一定值; 4) 、超过30%的终端上传的数据表明某应用模块在移动设备上与服务端发生通信数据 交互次数多于一定值。
【文档编号】H04L12/24GK104065506SQ201410218552
【公开日】2014年9月24日 申请日期:2014年5月22日 优先权日:2014年5月22日
【发明者】张骥先, 张学杰, 岳昆, 王津, 杨旭涛 申请人:云南大学