具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,是本发明较佳实施例提供的移动网络通信架构的示意图,所述移动网络通信架构包括用户终端100、无线接入网200、核心网300、网络400及目标服务器500。其中所述用户终端100经由所述无线接入网200、核心网300及网络400与所述目标服务器500进行数据传输。
所述用户终端100可以是,但不限于,智能手机、个人电脑(personal computer,PC)、平板电脑、个人数字助理(personal digital assistant,PDA)、移动上网设备(mobileInternet device,MID)等。
所述无线接入网200,或称为BBS(Base Station Subsystem,基站子系统)主要负责提供用户终端100的无线接入以及无线资源的分配、管理和调度功能。
所述核心网300包括SGSN(Serving GPRS Support Node,服务GPRS支持节点)和GGSN(Gateway GPRS Support Node,网关GPRS支持节点)。所述核心网300主要提供网络中的移动性管理、会话管理,以及IP数据包的传输业务,同时支持包括计费和合法监听等其他附加功能。
所述目标服务器500,可以是,但不限于,云端服务器或各个站点服务器。
请参照图2,是本发明较佳实施例提供的用户终端100的方框示意图。所述用户终端100可以包括移动网络数据传输系统110、存储器111、存储控制器112、处理器113以及通信单元114。
所述存储器111、存储控制器112、处理器113及通信单元114各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述移动网络数据传输系统110可以包括至少一个可以软件或固件(firmware)的形式存储于所述存储器111中或固化在所述用户终端100的操作系统(operating system,OS)中的软件功能模块。所述处理器113用于执行所述存储器111中存储的可执行模块,例如所述移动网络数据传输系统110所包括的软件功能模块及计算机程序等。
其中,所述存储器111可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器111用于存储程序,所述处理器113在接收到执行指令后,执行所述程序。所述处理器113以及其他可能的组件对存储器111的访问可在所述存储控制器112的控制下进行。
所述处理器113可能是一种集成电路芯片,具有信号的处理能力。上述的处理器113可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述通信单元114用于通过所述无线接入网200、核心网300及网络400建立所述用户终端100与目标服务器500二者之间的通信连接,从而实现所述用户终端100与所述目标服务器500之间的数据传输。
请参照图3及图4,图3是本发明较佳实施例提供的应用于图1所示用户终端100的移动网络数据传输方法的流程图,图4是本发明较佳实施例提供的应用于图1所示用户终端100与所述目标服务器500进行数据传输的时序图。其中图3中的流程步骤可以由所述处理器113实现。下面结合图3及图4对具体流程进行详细阐述。
步骤S111,监听用户终端100中的应用程序的运行状态。
具体地,用户终端100可以通过对应用程序在用户终端100上运行的线程或者进程进行监听,实现对所述应用程序的运行状态的监听。在本实施例中,监听的动作可以由事件监听器来实现,所述事件监听器用于监听事件源所发生的事件,并对各种事件作出相应的响应。其中,事件源是指事件发生的场所,通常就是各个组件,例如按钮、窗口、菜单等。事件是指封装了页面组件上发生的特定事情(如一次用户操作),具体地,如果程序需要获得界面组件上所发生事件的相关信息,一般可以通过事件对象来获取。在本实施例中,所述应用软件运行的线程或者进程可以被看做为一个事件。
步骤S112,在监听到的运行状态为预设的运行状态时,向核心网300发起信令请求,获取用于连接目标服务器500的信令,用于与所述目标服务器500进行数据传输。
所述预设的运行状态为所述应用程序中有较大概率请求网络数据的状态。以安装于用户终端的浏览器类(比如:UC浏览器、QQ浏览器及360浏览器)应用程序为例,所述有较大概率请求网络数据的状态包括但不限于:应用程序的启动、应用程序从后台切换到前台(即应用程序从新运行)、网络状态的改变(即改变后的网络可用)、进入地址栏(即光标焦点移动到所述地址栏准备接收输入地址)、进入书签及进入首页等。
在本实施例中,所述预设的运行状态是指所述应用程序在向核心网300发起联网请求或者数据传输请求之前的工作状态。具体地,所述预设的运行状态可以是,但不限于:应用程序的启动或关闭、应用程序的页面刷新及光标焦点的位置(比如光标焦点位于搜索栏、地址栏及内容显示区等)等。
所述预设的运行状态可以是运行应用软件默认的运行状态,也可以是用户根据不同的应用程序进行的预先设定。当所述预设的运行状态为用户的预先设定时,所述移动网络数据传输方法还可以包括,所述用户终端100响应用户的设置操作,为应用程序设置预设的运动状态。针对不同的应用程序其对应的预设的运行状态可以不同。
请参照图5,图5为本实施例的一种较佳实施方式中为某一浏览器应用程序设置预设的运行状态的设置界面。具体地,在打开对运行状态进行设置的设置界面后,所述设置界面上会显示该应用程序的多个运行状态,比如:程序启动、进入地址栏及光标焦点位于搜索栏等。用户可以通过勾选的方式对运行状态进行选择,用户终端100在响应用户的选择操作后,将用户选择的运行状态设置为所述预设的运行状态,并将其存储在所述用户终端100中。
请参照图4,在本实施例中,所述用户终端100监听应用程序的运行状态,在监听到预设的运行状态时,所述用户终端100向所述核心网300发送信令请求。所述核心网300在接收到所述信令请求时,还可以检测所述核心网300中是否已经存在分配给所述用户终端100用于连接所述目标服务器500的信令。若存在时,所述核心网300将不再为所述用户终端100分配连接目标服务器500的信令。若不存在时,所述核心网300再向所述用户终端100分配用于与所述目标服务器500进行数据传输的信令。
具体地,所述信令是指为实现用户终端100与目标服务器500之间的数据传输,核心网300中所提供的必要支持,包括移动性管理、会话管理和安全性保证等。
在所述核心网300为用户终端100分配信令之后,所述用户终端100可以通过传输控制协议(Transmission Control Protocol,简称TCP)与所述目标服务器500进行数据传输。所述目标服务器500可以是互联网上任意的站点服务器,所述目标服务器500与所述用户终端100上运行的应用程序对应。比如,当应用程序为流览器类(比如:UC浏览器、QQ浏览器及360浏览器)的应用程序时,所述目标服务器500可以是云端服务器或者随机的站点服务器。在本实施例的一种实施方式中,用户终端100也可以通过无线应用通讯协议(Wireless Application Protocol,简称WAP)与所述目标服务器500进行数据传输。
在本实施例的一种较佳实施方式中,所述核心网300还可以检测所述用户终端100在发起所述信令请求之后的预设时间(比如:10秒)内是否发起联网请求,若没有检测到用户终端100在所述预设时间内发起联网请求,所述核心网300可以回收为所述用户终端100分配用于连接所述目标服务器500的信令。在实际使用中,因预设的工作状态只是用户可能较大几率要使用网络的状态,很多情况下用户并不必然会使用网络。比如,当在用户终端100中打开浏览器,但用户并未在接下来的时间中使用该浏览器进行联网。而此时,所述核心网300已经给用户终端100分配了信令,虽然核心网300可以采用末尾淘汰的方式将该信令被动的淘汰掉,但在信令通道相对宽松时,还是会一直占用信令通道,采用上述提供的方式,可以自动对根据信令请求分配的信令进行管理,防止上述信令长时间占用信令通道。
请参照图4,在本实施例中,在所述核心网300为所述用户终端100分配与目标服务器500连接的信令后,所述用户终端100即可直接发送联网请求将请求数据发送至所述目标服务器500,所述目标服务器500的应答数据再回传至所述用户终端100,从而实现所述用户终端100与所述目标服务器500之间的数据传输。
本实施例提供的移动网络数据传输方法,在可能进行数据传输时才会让核心网300分配信令,相对于现有采用“心跳连接”的应用程序(比如:QQ、微信)占用的信令资源更少。其中,心跳连接是指应用程序在打开后在后台运行时还会每隔一段时间(比如:5秒)向网络发送联网请求。
在本实施例中,所述用户终端100连接目标服务器500的信令在所述用户终端100发出联网请求时已经被提前分配,因此,与现有技术在用户终端100发出联网请求时再为用户终端100分配信息的方式相比,本实施例提供的方法能节省建立连接的时间。通过统计数据表明,采用该方法,可以将建立连接的平均时间缩短约200毫秒,约占平均连接时间的20%。同时,在本实施例中,核心网300根据通讯协议对信令的维持也有利于提高所述目标服务器500将数据回传至所述客户终端100的效率,减小所述目标服务器500对数据请求的响应时间。通过统计数据表明,可以将所述目标服务器500的平均响应时间缩短50毫秒,约占目标服务器500平均响应时间的8%。
上述方法通过监听应用程序的运行状态,提前预测应用程序可能发生的联网动作,并预先向核心网300发起信令请求,获得核心网300为其分配的用于连接目标服务器500的信令。在应用程序进行联网时,直接采用已经获取信令即可实现与目标服务器500之间的数据传输,省去核心网在进行联网时才去进行信令分配的时间,缩短用户终端100网络连接的等待时间,提高用户体验。
请参照图6,图6是本发明实施例提供的图2所示移动网络数据传输系统110的功能模块框图。所述移动网络数据传输系统包括状态监听模块1101及数据传输模块1102。
所述状态监听模块1101,用于监听用户终端100中的应用程序的运行状态。
具体地,所述状态监听模块1101可以通过对应用程序在用户终端100上运行的线程或者进程进行监听,实现对所述应用程序的运行状态的监听。
所述数据传输模块1102,用于在监听到的运行状态为预设的运行状态时,向核心网300发起信令请求,获取用于连接目标服务器500的信令,用于与所述目标服务器500进行数据传输。
所述预设的运行状态为所述应用程序中有较大概率请求网络数据的状态。以安装于用户终端的浏览器类(比如:UC浏览器、QQ浏览器及360浏览器)应用程序为例,所述有较大概率请求网络数据的状态包括但不限于:应用程序的启动、应用程序从后台切换到前台(即应用程序从新运行)、网络状态的改变(即改变后的网络可用)、进入地址栏(即光标焦点移动到所述地址栏准备接收输入地址)、进入书签及进入首页等。
在本实施例中,所述预设的运行状态是指所述应用程序在向核心网300发起联网请求或者数据传输请求之前的工作状态。具体地,所述预设的运行状态可以是,但不限于:应用程序的启动或关闭、应用程序的页面刷新及光标焦点的位置(比如光标焦点位于搜索栏、地址栏及内容显示区等)等。
所述预设的运行状态可以是运行应用软件默认的运行状态,也可以是用户根据不同的应用程序进行的预先设定。当所述预设的运行状态为用户的预先设定时,所述移动网络数据传输系统还可以包括状态设置模块1103,所述状态设置模块1103响应用户的设置操作,为应用程序设置预设的运动状态。针对不同的应用程序其对应的预设的运行状态可以不同。
请参照图5,图5为本实施例的一种较佳实施方式中为某一浏览器应用程序设置预设的运行状态的设置界面。具体地,状态设置模块1103可以包括状态显示子模块11031及状态选择子模块11032,其中,所述状态显示子模块11031用于打开对运行状态进行设置的设置界面后,在所述设置界面上显示该应用程序的多个运行状态,比如,对应显示屏上显示的运行状态可以是程序启动、进入地址栏及光标焦点位于搜索栏等。用户可以通过勾选的方式对运行状态进行选择,最后状态选择子模块11032用于响应用户的选择操作,将用户选择的运行状态设置为所述预设的运行状态,并将其存储在所述用户终端100中。
请参照图4,在本实施例中,所述用户终端100监听应用程序的运行状态,在监听到预设的运行状态时,所述用户终端100向所述核心网300发送信令请求。所述核心网300在接收到所述信令请求时,还可以检测所述核心网300中是否已经存在分配给所述用户终端100用于连接所述目标服务器500的信令。若存在时,所述核心网300将不再为所述用户终端100分配连接目标服务器500的信令。若不存在时,所述核心网300再向所述用户终端100分配用于与所述目标服务器500进行数据传输的信令。
具体地,所述信令是指为实现用户终端100与目标服务器500之间的数据传输,核心网300中所提供的必要支持,包括移动性管理、会话管理和安全性保证等。
在所述核心网300为用户终端100分配信令之后,所述用户终端100可以通过传输控制协议(Transmission Control Protocol,简称TCP)与所述目标服务器500进行数据传输。所述目标服务器500可以是互联网上任意的站点服务器,所述目标服务器500与所述用户终端100上运行的应用程序对应。比如,当应用程序为流览器类(比如:UC浏览器、QQ浏览器及360浏览器)的应用程序时,所述目标服务器500可以是云端服务器或者随机的站点服务器。在本实施例的一种实施方式中,用户终端100也可以通过无线应用通讯协议(Wireless Application Protocol,简称WAP)与所述目标服务器500进行数据传输。
在本实施例的一种较佳实施方式中,所述核心网300还可以检测所述用户终端100在发起所述信令请求之后的预设时间(比如:10秒)内是否发起联网请求,若没有检测到用户终端100在所述预设时间内发起联网请求,所述核心网500可以回收为所述用户终端100分配用于连接所述目标服务器500的信令。在实际使用中,因预设的工作状态只是用户可能较大几率要使用网络的状态,很多情况下用户并不必然会使用网络。比如,当在用户终端100中打开浏览器,但用户并未在接下来的时间中使用该浏览器进行联网。而此时,所述核心网300已经给用户终端100分配了信令,虽然核心网300可以采用末尾淘汰的方式将该信令被动的淘汰掉,但在信令通道相对宽松时,还是会一直占用信令通道,采用上述提供的方式,可以自动对根据信令请求分配的信令进行管理,防止上述信令长时间占用信令通道。
请参照图4,在本实施例中,在所述核心网300为所述用户终端100分配与目标服务器500连接的信令后,所述用户终端100即可直接发送联网请求将请求数据发送至所述目标服务器500,所述目标服务器500的应答数据再回传至所述用户终端100,从而实现所述用户终端100与所述目标服务器500之间的数据传输。
本实施例提供的移动网络数据传输系统,在可能进行数据传输时才会让核心网300分配信令,相对于现有采用“心跳连接”的应用程序(比如:QQ、微信)占用的信令资源更少。其中,心跳连接是指应用程序在打开后在后台运行时还会每隔一段时间(比如:5秒)向网络发送联网请求。
在本实施例中,所述用户终端100连接目标服务器500的信令在所述用户终端100发出联网请求时已经被提前分配,因此,与现有技术在用户终端100发出联网请求时再为用户终端100分配信息的方式相比,本实施例提供的方法能节省建立连接的时间。通过统计数据表明,采用该方法,可以将建立连接的平均时间缩短约200毫秒,约占平均连接时间的20%。同时,在本实施例中,核心网300根据通讯协议对信令的维持也有利于提高所述目标服务器500将数据回传至所述客户终端100的效率,减小所述目标服务器500对数据请求的响应时间。通过统计数据表明,可以将所述目标服务器500的平均响应时间缩短50毫秒,约占目标服务器500平均响应时间的8%。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,也可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。