云计算资源的分配方法、装置及系统的制作方法

文档序号:7987592阅读:195来源:国知局
云计算资源的分配方法、装置及系统的制作方法
【专利摘要】本发明实施例公开了一种云计算资源的分配方法、装置及系统,应用于包括客户端、决策实体和多个前端云服务器的网络中,本实施例通过多个前端云服务器中的第一前端云服务器接收客户端发送的云应用服务请求,所述第一前端云服务器是决策实体根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息确定的、给所述客户端提供云应用服务的前端云服务器;根据所述云应用服务请求进行相应的云应用计算处理,向所述客户端返回所述云应用计算处理的结果,能够降低云计算应用的网络时延和丢包概率。
【专利说明】云计算资源的分配方法、装置及系统
【技术领域】
[0001]本发明实施例涉及通信【技术领域】,尤其涉及一种云计算资源的分配方法、装置及系统。
【背景技术】
[0002]作为一种互联网上的资源利用新方式,云计算可以使用终端自身无法提供的功能,可以使用其他网络单元提供的云计算应用,例如,云游戏、云桌面。
[0003]在传统的云计算应用模式下,云应用部署在中心云服务器上,客户端将用户操作经过网络传输到中心云服务器上,中心云服务器内的云应用根据来自用户的操作将应用运行后的结果通过视频流的方式传输给客户端,客户端完成应用结果的显示。
[0004]上述传统的云计算应用模式,客户端与中心云服务器之间由于距离较远,途径网络跳数较多,因此,存在网络时延较大、丢包概率较大的问题,尤其是对网络丢包、时延等参数极为敏感的云计算应用(例如云游戏、云桌面)。

【发明内容】

[0005]本发明提供一种云计算资源的分配方法、装置及系统,能够降低云计算应用的网络时延和丢包概率。
[0006]第一方面,本发明提供一种云计算资源的分配方法,所述方法应用于包括客户端、决策实体和多个前端云服务器的网络中,所述方法包括:
[0007]所述多个前端云服务器中的第一前端云服务器接收的所述客户端发送的云应用服务请求,所述第一前端云服务器是所述决策实体根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息,从所述多个前端云服务器中确定的、给所述客户端提供云应用服务的前端云服务器;
[0008]根据所述云应用服务请求进行相应的云应用计算处理,向所述客户端返回所述云应用计算处理的结果。
[0009]基于第一方面,在第一种实现方式中,所述云应用服务请求中包括云应用标识;在所述根据所述云应用服务请求进行相应的云应用计算处理之前,所述方法还包括:
[0010]所述第一前端云服务器根据所述客户端发送的云应用标识,向所述客户端发送与所述云应用标识对应的应用代码,以使所述客户端向所述第一前端云服务器发送与所述应用代码对应的渲染指令包,所述渲染指令包包括渲染指令;或者
[0011]所述第一前端云服务器接收所述决策实体发送的渲染指令包,所述渲染指令包为所述决策实体在根据所述客户端发送的云应用标识确定与所述云应用标识对应的应用代码后,向所述第一前端云服务器发送的与所述应用代码对应的渲染指令包,所述渲染指令包包括渲染指令;或者
[0012]所述第一前端云服务器根据所述客户端发送的云应用标识,确定与所述云应用标识对应的应用代码,根据所述确定的应用代码构造与所述应用代码对应的渲染指令。
[0013]基于第一方面的第一种实现方式,在第二种实现方式中,所述云应用服务请求中还包括匹配信息,所述匹配信息包括云应用类型信息和/或所述客户端的显示分辨率信息;
[0014]所述根据所述云应用服务请求进行相应的云应用计算处理,向所述客户端返回所述云应用计算处理的结果包括:
[0015]所述第一前端云服务器根据所述渲染指令,调用预先存储的渲染素材对帧图像进行渲染处理,将渲染处理后的帧图像进行压缩;
[0016]采用与所述匹配信息相匹配的转码码率对所述压缩后的帧图像进行转码处理,生成视频编码;
[0017]采用所述客户端使用的传输协议和/或封装协议将所述视频编码封装为网络数据包并发送给所述客户端。
[0018]第二方面,本发明提供一种云计算资源的分配方法,所述方法应用于包括客户端、决策实体和多个前端云服务器的网络中,所述方法包括:
[0019]所述决策实体根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息,从所述多个前端云服务器中确定给所述客户端提供云应用服务的第一前端云服务器;
[0020]将所述确定的第一前端云服务器的信息发送给所述客户端,以使所述客户端根据所述第一前端云服务器的信息,向所述第一前端云服务器发送云应用服务请求。
[0021]基于第二方面,在第一种实现方式中,将所述确定的第一前端云服务器的信息发送给所述客户端之后,包括:
[0022]所述决策实体根据所述客户端发送的云应用标识,将与所述云应用标识对应的应用代码以及所述应用代码和所述云应用标识的对应关系发送给所述第一前端云服务器。
[0023]基于第二方面,在第二种实现方式中,将所述确定的第一前端云服务器的信息发送给所述客户端之后,包括:
[0024]所述决策实体根据所述客户端发送的云应用标识,确定与所述云应用标识对应的应用代码;
[0025]向所述第一前端云服务器发送与所述确定的应用代码对应的渲染指令包。
[0026]第三方面,本发明提供一种云计算资源的分配方法,所述方法应用于包括客户端、决策实体和多个前端云服务器的网络中,所述方法包括:
[0027]所述客户端接收所述决策实体发送的第一前端云服务器的信息,所述第一前端云服务器是所述决策实体根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息,从所述多个前端云服务器中确定的、给所述客户端提供云应用服务的前端云服务器;
[0028]根据所述第一前端云服务器的信息,向所述第一前端云服务器发送云应用服务请求。
[0029]基于第三方面,在第一种实现方式中,所述云应用服务请求中包含云应用标识;
[0030]根据所述第一前端云服务器的信息,向所述第一前端云服务器发送云应用服务请求之后,所述方法还包括:[0031]所述客户端接收所述第一前端云服务器发送的与所述云应用标识对应的应用代码;
[0032]根据所述应用代码,向所述第一前端云服务器发送与所述应用代码对应的渲染指令包;
[0033]接收所述第一前端云服务器发送的网络数据包,显示所述网络数据包中视频编码,其中,所述网络数据包是所述第一前端云服务器对帧图像进行处理得到的,所述处理包括根据所述渲染指令包进行的渲染处理。
[0034]基于第三方面,在第二种实现方式中,所述根据所述第一前端云服务器的信息,向所述第一前端云服务器发送云应用服务请求之后,包括:
[0035]所述客户端向所述决策实体发送云应用标识,以使所述决策实体根据所述云应用标识确定与所述云应用标识对应的应用代码,向所述第一前端云服务器发送与所述应用代码对应的渲染指令包;
[0036]接收所述第一前端云服务器发送的网络数据包,显示所述网络数据包中视频编码,其中,所述网络数据包是所述第一前端云服务器对帧图像进行处理得到的,所述处理包括根据所述渲染指令包进行的渲染处理。
[0037]第四方面,本发明提供一种第一前端云服务器,应用于包括客户端、决策实体和多个前端云服务器的网络中,所述第一前端云服务器是决策实体根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息从所述多个前端云服务器中确定的、给所述客户端提供云应用服务的前端云服务器;所述第一前端云服务器包括:
[0038]接收模块,用于接收所述客户端发送的云应用服务请求;
[0039]处理模块,用于根据所述云应用服务请求进行相应的云应用计算处理;发送模块,用于向所述客户端返回所述云应用计算处理的结果。
[0040]基于第四方面,在第一种实现方式中,所述云应用服务请求中包括云应用标识;
[0041]所述发送模块,还用于根据所述客户端发送的云应用标识,向所述客户端发送与所述云应用标识对应的应用代码,以使所述客户端向所述第一前端云服务器发送与所述应用代码对应的渲染指令包,所述渲染指令包包括渲染指令;或者
[0042]所述接收模块,还用于接收所述决策实体发送的渲染指令包,所述渲染指令包为所述决策实体在根据所述客户端发送的云应用标识确定与所述云应用标识对应的应用代码后,向所述第一前端云服务器发送的与所述应用代码对应的渲染指令包,所述渲染指令包包括渲染指令;或者
[0043]所述第一前端云服务器还包括构建模块,所述构建模块用于根据所述客户端发送的云应用标识,确定与所述云应用标识对应的应用代码,根据所述确定的应用代码构造与所述应用代码对应的渲染指令。
[0044]基于第四方面的在第一种实现方式,在第二种实现方式中,所述云应用服务请求中还包括匹配信息,所述匹配信息包括云应用类型信息和/或所述客户端的显示分辨率信息;
[0045]所述处理模块,具体用于:
[0046]根据所述渲染指令,调用预先存储的渲染素材对帧图像进行渲染处理,将渲染处理后的帧图像进行压缩;采用与所述匹配信息相匹配的转码码率对所述压缩后的帧图像进行转码处理,生成视频编码;采用所述客户端使用的传输协议和/或封装协议将所述视频编码封装为网络数据包。
[0047]第五方面,本发明提供一种决策实体,应用于包括客户端、决策实体和多个前端云服务器的网络中,包括:
[0048]确定模块,用于根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息,从所述多个前端云服务器中确定给所述客户端提供云应用服务的第一前端云服务器;
[0049]发送模块,用于将所述确定的第一前端云服务器的信息发送给所述客户端,以使所述客户端根据所述第一前端云服务器的信息,向所述第一前端云服务器发送云应用服务请求。
[0050]基于第五方面,在第一种实现方式中,所述发送模块在将所述确定的第一前端云服务器的信息发送给所述客户端之后,还用于根据所述客户端发送的云应用标识,将与所述云应用标识对应的应用代码以及所述应用代码和所述云应用标识的对应关系发送给所述第一前端云服务器。
[0051]基于第五方面,在第二种实现方式中,在所述发送模块将所述确定的第一前端云服务器的信息发送给所述客户端之后,所述确定模块,还用于根据所述客户端发送的云应用标识,确定与所述云应用标识对应的应用代码;
[0052]所述发送模块,还用于向所述第一前端云服务器发送与所述确定的应用代码对应的渲染指令包。
[0053]第六方面,本发明提供一种客户端,应用于包括客户端、决策实体和多个前端云服务器的网络中,包括:
[0054]接收模块,用于接收所述决策实体发送的第一前端云服务器的信息,所述第一前端云服务器是所述决策实体根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息,从所述多个前端云服务器中确定的、给所述客户端提供云应用服务的前端云服务器;
[0055]发送模块,用于根据所述第一前端云服务器的信息,向所述第一前端云服务器发送云应用服务请求。
[0056]基于第六方面,在第一种实现方式中,所述云应用服务请求中包含云应用标识;
[0057]在所述发送模块向所述第一前端云服务器发送所述云应用服务请求之后,所述接收模块,还用于接收所述第一前端云服务器发送的与所述云应用标识对应的应用代码;
[0058]所述发送模块,还用于根据所述应用代码,向所述第一前端云服务器发送与所述应用代码对应的渲染指令包;
[0059]所述接收模块,还用于接收所述第一前端云服务器发送的网络数据包,显示所述网络数据包中视频编码,其中,所述网络数据包是所述第一前端云服务器对帧图像进行处理得到的,所述处理包括根据所述渲染指令包进行的渲染处理。
[0060]基于第六方面的第一种实现方式,在第二种实现方式中,在所述发送模块向所述第一前端云服务器发送所述云应用服务请求之后,所述发送模块,还用于向所述决策实体发送云应用标识,以使所述决策实体根据所述云应用标识确定与所述云应用标识对应的应用代码,向所述第一前端云服务器发送与所述应用代码对应的渲染指令包;
[0061]所述接收模块,还用于接收所述第一前端云服务器发送的网络数据包,显示所述网络数据包中视频编码,其中,所述网络数据包是所述第一前端云服务器对帧图像进行处理得到的,所述处理包括根据所述渲染指令包进行的渲染处理。
[0062]第七方面,本发明提供一种云计算资源的分配系统,包括:上述第一前端云服务器、决策实体和客户端。
[0063]本实施例中的决策实体在满足云应用需要的条件下,根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,动态地确定给所述客户端提供云应用服务的第一前端云服务器,例如,将离客户端网络跳数最少的前端云服务器确定为第一前端云服务器,通过第一前端云服务器对来自客户端的云应用服务请求提供相应的云应用服务,从而可以减少客户端与前端云服务器之间的网络跳数,减少网络时延和丢包概率。
【专利附图】

【附图说明】
[0064]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0065]图1为本发明一实施例提供的云计算资源的分配方法的流程示意图;
[0066]图2为本发明另一实施例提供的云计算资源的分配方法的流程示意图;
[0067]图3为本发明另一实施例提供的云计算资源的分配方法的流程示意图;
[0068]图4为本发明另一实施例提供的云计算资源的分配方法的一种信令图;
[0069]图5为本发明另一实施例提供的云计算资源的分配方法的又一种信令图;
[0070]图6为本发明另一实施例提供的云计算资源的分配方法的又一种信令图;
[0071]图7为本发明另一实施例提供的云计算资源的分配方法的又一种信令图;
[0072]图8为本发明另一实施例提供的第一前端云服务器的结构示意图;
[0073]图9为本发明另一实施例提供的决策实体的结构示意图;
[0074]图10为本发明另一实施例提供的客户端的结构示意图;
[0075]图11为图1-图7任一所示实施例中云计算资源的分配方法应用的系统架构图;
[0076]图12为图1-图7任一所示实施例应用的非图形计算单元的规格示意图;
[0077]图13为图1-图7任一所示实施例应用的图形计算单元的规格示意图;
[0078]图14为现有技术中云应用服务部署系统架构图;
[0079]图15为本发明另一实施例提供的第一前端云服务器的结构示意图;
[0080]图16为本发明另一实施例提供的决策实体的结构示意图;
[0081]图17为本发明另一实施例提供的客户端的结构示意图。
【具体实施方式】
[0082]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0083]本发明的技术方案,可以应用于云计算的各种虚拟操作系统,例如:基于内核的虚拟机(英文:Kernel_based Virtual Machine,简称 KVM)> Linux 容器(英文:LinuxContainers,简称LXC)、高速处理器模拟器(英文:Quick EMU lator,简称QEMU)、Linux用户模式(英文:User Mode Linux,简称 UML)、VMWare ESX/ESXi4.1、Xen_XenServer5.5、Xen云平台(英文:Xen Cloud Platform,简称XCP)等。
[0084]图1为本发明一实施例提供的云计算资源的分配方法的流程示意图,应用于包括客户端、决策实体和多个前端云服务器的网络中,如图1所示,本实施例的云计算资源的分配方法可以包括:
[0085]101、多个前端云服务器中的第一前端云服务器接收客户端发送的云应用服务请求,所述第一前端云服务器是决策实体根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息,从所述多个前端云服务器中确定的、给所述客户端提供云应用服务的前端云服务器。
[0086]图14为现有技术中云应用服务部署系统架构图,如图14所示,通常,客户端请求的云应用服务部署在中心云服务器中,因此,大量并发在线用户产生的大流量需要经过网络运营商的骨干网络,给运营商的骨干网络带来巨大流量冲击。
[0087]而本实施例中,图11为图1-图7任一所示实施例中云计算资源的分配方法应用的系统架构图,如图11所示的系统架构图,将客户端请求的云应用操作部署到前端云服务器,从而使得大量并发在线用户产生的大流量不需要经过网络运营商的骨干网络,不会给运营商的骨干网络带来巨大流量冲击,因此,本发明实施例可以降低对运营商的骨干网络带来巨大流量冲击。
[0088]如图11所示的系统架构图,本实施例应用的系统包括客户端、前端云服务器和决策实体,其中,客户端和前端云服务器间通过终端侧远程协议通信,例如远程桌面协议(英文:Remote Display Protocol,简称RDP)、独立计算结构(英文!Independentcomputing architecture,简称 I CA)协议、远程桌面(英文:PC-over_IP,简称 PCoIP)协议、快速远程桌面(英文=Nomachine NX,简称NX)协议或者私有协议等。前端云服务器和决策实体间通过开放的云间协议通信,例如采用类似的扩展标记语言(英文extensibleMarkup Language,简称XML)格式或者轻量级的数据交换格式(英文:JavaScript ObjectNotation,简称JS0N)承载通信协议的内容。
[0089]其中,客户端包括输入设备和输出设备,可以安装云应用的客户端软件或者因特网浏览器(英文=Internet Explorer,简称IE)软件,完成对用户输入操作(例如键盘、鼠标、触摸滑动等)的采集与网络发送,或者客户端软件的渲染指令采集与网络发送。客户端还需处理来自前端云服务器发送的媒体流数据(包括视频、音频),完成解码和或解密,并通过输出设备完成内容显示。客户端包括但不限于智能手机、电脑、智能电视、个人电脑、便携机等设备。
[0090]在本实施例中,决策实体主要是根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,确定的、给所述客户端提供云应用服务的前端云服务器。其中,决策实体具体可以为处理器,通常,决策实体可以部署在中心云服务器中,或者也可以部署在前端云服务器中,本发明对比不作限定。
[0091]在本发明的一个实施方式中,决策实体获取客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,具体实现时:
[0092]例如,用户通过客户端登录决策实体,通常,决策实体提示输入用户信息,对该用户信息进行验证,用户信息例如包括用户名和密码,验证通过后,决策实体向客户端响应,显示用户登录成功。
[0093]用户登录成功之后,可以选择欲请求的云应用(例如云游戏),客户端根据用户选择向决策实体发起携带有客户端的位置信息的请求消息。其中,客户端的位置信息例如包括客户端的因特网协议(英文:Internet Protocol,简称IP地址)、介质访问控制(英文:Media Access Control,简称MAC)地址或交换机端口号中的至少一项。
[0094]又例如,决策实体可以通过监控程序获得多个前端云服务器的状态信息,例如,每个前端云服务器的状态信息包括但不限于CPU负载、硬盘读写频率、内存使用、GPU负载等信息。
[0095]又例如,决策实体可以通过查询客户端与多个前端云服务器之间的网络上的路由器信息,获得客户端与多个前端云服务器之间网络链路状态信息。
[0096]在本发明的一个实施方式中,为了减少网络时延和丢包概率,决策实体根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,动态地确定给客户端提供云应用服务的第一前端云服务器,具体实现包括:
[0097]例如,将离客户端网络跳数最少的前端云服务器确定为第一前端云服务器。
[0098]又例如,在实际应用中,有时候离客户端网络跳数最少的前端云服务器负荷超载或者由于网络状况不好导致与客户端之间的网络链路状态不好,不适合为客户端提供云应用服务时,决策实体可以将任一个与该客户端之间网络链路状态好的前端云服务器确定为第一前端云服务器。
[0099]决策实体将确定的第一前端云服务器的信息发送给客户端,其中,第一前端云服务器的信息例如包括第一前端云服务器的IP地址。
[0100]客户端根据决策实体发送的第一前端云服务器的信息,向该第一前端云服务器发送云应用服务请求。其中,云应用服务请求例如包括云游戏或云桌面请求。
[0101]102、根据所述云应用服务请求进行相应的云应用计算处理,向所述客户端返回所述云应用计算处理的结果。
[0102]举例来说,第一前端云服务器包括第一计算模块、第二计算模块和渲染处理模块;
[0103]其中,第一计算模块可以是一组为完成某个计算任务所需相关资源的集合构成的单元,第一计算模块例如可以是一个虚拟机或者一个虚拟容器。其中,虚拟机是模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,通过虚拟机软件,一台物理计算机上可以模拟出一个或多个虚拟机,这些虚拟机完全就像真正的计算机那样进行工作,例如可以安装操作系统、安装应用程序、访问网络资源等。虚拟容器,是虚拟层是通过创建虚拟操作系统实例实现的,它再指向根操作系统的关键系统文件,这些指针驻留在操作系统容器受保护的内存中,提供低内存开销,因此虚拟化实例的密度很大。通过共享系统文件的优点,所有容器可能只基于根操作系统提供客户机,举例来说,一个基本的Windows Server 2003操作系统也可用于创建Windows Server 2003容器。
[0104]在本发明的另一个实施方式中,第一前端云服务器可以在第一计算模块中预设一个或一个以上的计算单元,其中,计算单元可以为图像计算单元或者非图像计算单元。
[0105]其中,图12为图1-图7任一所示实施例应用的非图形计算单元的规格示意图;如图12所示,具体按照用户需求对第一计算模块的物理资源进行虚拟化,虚拟成各种规格的非图形计算单元。通常,非图形计算单元不提供图形处理的硬件加速,简单的图形处理需求通过虚拟中央处理单元(英文:Central Processing Unit,简称CPU)的软件模拟实现。
[0106]图形计算单元通常具备图形处理的硬件加速,例如CPU完成应用逻辑的处理,虚拟图形处理单元(英文:Graphics Processing Unit,简称GPU)完成相关的图形处理计算;图13为图1-图7任一所示实施例应用的图形计算单元的规格示意图,如图13所示,具体实现时,通过虚拟化技术将底层的物理显卡虚拟化成若干个vGPU单元与虚拟显存单元。显卡虚拟化包含vGPU单元和虚拟显存单元。
[0107]需要说明的是,本实施例中,GPU虚拟化的实现方式包括如下方式:
[0108]例如,对直接支持GPU虚拟化的显卡可以通过虚拟层进行直接虚拟化;具体实现时,由虚拟化层将物理显卡抽象成多个显卡,每一个抽象显卡供给一个虚拟机(英文:Virtual Machine,简称VM)使用。虚拟层需要实现底层硬件的屏蔽,掩藏显卡的细节,保证应用的迁移灵活性。显卡本身的一些特性无法为应用所用。
[0109]又例如,对不直接支持GPU虚拟化的显卡采用特权进程加应用进程方式,由特权进程上的后端驱动完成虚拟化;具体实现时,虚拟机监控器(英文=Virtual MachineMonitor,简称VMM)将GPU设备的控制权,交由设备管理上的后端设备驱动,后端驱动完成GPU的访问,其它VM上应用通过前端设备驱动调用后端设备驱动完成GPU的访问。后端设备驱动可使用到显卡本身的特性,对前端设备驱动屏蔽显卡硬件细节,保证应用的任意迁移,后端设备驱动可能是所用应用的性能瓶颈。特权进程也称为虚拟化进程。
[0110]又例如,操作系统虚拟化方式,在一个操作系统上运行多个图形渲染的应用,由操作系统调度应用完成GPU的虚拟化;具体实现时,在一个操作系统运行多个容器,在容器中运行图形应用。虚拟层是通过创建虚拟操作系统实例实现的,它再指向根操作系统的关键系统文件。容器中图形应用通过容器来访问物理上的GPU。由于容器本身不需要安装操作系统,其操作系统使用的是主机操作系统。
[0111]又例如,远程虚拟化,当本地无显卡或者无法满足虚拟化服务时,将渲染请求通过远端进程调用(英文:Remote Process Call,简称RPC)调度到其他的物理显卡执行,完成GPU的虚拟化;具体实现时,在本地没有显卡或者本地显卡功能较弱时将图形计算需求通过RPC方式发送到其他物理GPU上,捕获应用的图形处理计算指令发送到安装有显卡的服务器,最终再通过RPC调用取回渲染结果。
[0112]其中,第二计算模块是第一前端云服务器提供的通用功能模块,为各类应用开发提供公共基础的组件支持;例如包括压缩单元、编解码单元、流化单元、加解密模块和协议通讯模块。压缩单元用于将渲染生成的帧图像进行压缩处理,编解码单元用于将压缩后的帧图像转换成适合在网络传输和客户端解码的视频编码,流化单元用于将视频编码封装成网络数据包传送到客户端,加解密模块为运应用提供加密和解密功能。协议通讯模块提供客户端和第一前端云服务器,以及第一前端云服务器和决策实体之间的通信。
[0113]需要说明的是,本实施例中,第二计算模块可作为动态链接库(英文=DynamicLink Library,简称DLL)的形式对外开放,即可作为独立库文件运行在目标系统中,通过运行时载入应用可获得最新的计算功能库版本;DLL库也可以直接载入到镜像文件中。或者第二计算模块也可作为服务模块的形式对外开放,即通过让应用调用应用程序编程接口(英文Application Programming Interface,简称API)提供服务,第二计算模块的服务模块可以是运行在服务器的软件,可以是运行在现场可编程门阵列(英文:Field — Programmable Gate Array,简称FPGA)中的逻辑或者是以专用集成电路(英文:Application Specific Integrated Circuit,简称ASIC)呈现,可以是硬件、逻辑和软件的结合体。本地存储可用于提供模块间的缓存,也可用于用户输入输出数据的缓存。
[0114]渲染处理模块例如通过应用程序编程接口(英文!Application ProgrammingInterface,简称API)接收渲染指令包(例如Direct3D指令),获取渲染指令包中的渲染指令,将获取的渲染指令发送给第一计算模块进行渲染处理。
[0115]为了达到应用需求和计算能力的匹配,满足应用需求的同时充分使用物理硬件资源,在本发明的另一个实施方式中,客户端向第一前端云服务器发送的云应用服务请求中包括匹配信息,所述匹配信息包括云应用类型信息和/或所述客户端的显示分辨率信息和/或所述客户端的操作系统类型信息;第一前端云服务器可以根据所述云应用类型信息和/或所述客户端的显示分辨率信息,确定与所述应用类型和/或所述客户端的显示分辨率匹配的图像计算单元或非图像计算单元;例如,同一种应用在不同分辨率下显示需要的图形计算能力是不一样的,分辨率越高需求的图形计算越大。同一个分辨率下不同应用需求的图形计算能力也是不一样的,界面变化越剧烈需求的图形计算越大。需要根据分辨率和应用选择合适的图形处理单元,需求高的就分配高性能的计算单元,需求低就分配低性能的计算单元。
[0116]根据所述云应用类型信息和/或所述客户端的显示分辨率信息,确定编解码单元中采用的转码码率,其中,确定的转码码率与所述应用类型和/或所述客户端的显示分辨率相匹配;例如,帧率高分辨率高编码后码流的码率就越高。
[0117]根据所述客户端的操作系统类型信息,确定与所述客户端的操作系统类型匹配的渲染处理模块,例如,为Windows环境选择微软提供的3D渲染库(英文:Direct3D)渲染处理模块,Android环境选择开放图形库(英文:0pen Graphics Library,简称OpenGL)渲染处理模块。
[0118]在本发明的另一个实施方式中,为了降低第一前端云服务器与决策实体之间的数据交互量,将云应用计算中需要的渲染素材存储在第一前端云服务器中,可以降低渲染素材的获取时间,从而可以提高计算速度,降低网络时延。
[0119]在本发明的另一个实施方式中,为了降低第一前端云服务器与决策实体之间的数据交互量,将云应用服务中需要的应用代码存储在第一前端云服务器中,可以降低应用代码的获取时间,从而可以提高计算速度,降低网络时延。
[0120]假设客户端运行应用代码,第一前端云服务器进行渲染处理,客户端为了获取应用代码,向第一前端云服务器发送的云应用服务请求中还包括云应用标识。
[0121]第一前端云服务器向所述客户端发送与所述云应用标识对应的应用代码,以使所述客户端向所述第一前端云服务器发送与所述应用代码对应的渲染指令包。
[0122]第一前端云服务器中与所述客户端的操作系统类型匹配的渲染处理模块获取所述渲染指令包中的渲染指令,将所述渲染指令发送给所述第一前端云服务器中与所述应用类型和/或所述客户端的显示分辨率匹配的图像计算单元或非图形计算单元。
[0123]与所述应用类型和/或所述客户端的显示分辨率匹配的图像计算单元或非图形计算单元根据所述渲染指令调用预先存储的渲染素材进行渲染处理,将所述渲染处理后的帧图像发送给第二计算模块中。
[0124]所述第二计算模块采用与所述云应用类型和/或所述客户端的显示分辨率匹配的转码码率,将所述渲染处理后的帧图像进行转码处理,生成适合在网络传输和所述客户端解码的视频编码,将所述视频编码封装成网络数据包发送给所述客户端。
[0125]在本发明的另一个实施方式中,假设决策实体运行应用代码,第一前端云服务器进行渲染处理,决策实体根据所述客户端发送的云应用标识确定的与所述云应用标识对应的应用代码,根据所述确定的应用代码向所述第一前端云服务器发送的与所述应用代码对应的渲染指令包。
[0126]第一前端云服务器中与所述客户端的操作系统类型匹配的渲染处理模块获取所述渲染指令包中的渲染指令,将所述渲染指令发送给所述第一前端云服务器中与所述应用类型和/或所述客户端的显示分辨率匹配的图像计算单元或非图形计算单元。
[0127]与所述应用类型和/或所述客户端的显示分辨率匹配的图像计算单元或非图形计算单元根据所述渲染指令调用预先存储的渲染素材进行渲染处理,将所述渲染处理后的帧图像发送给第二计算模块中。
[0128]所述第二计算模块采用与所述云应用类型和/或所述客户端的显示分辨率匹配的转码码率,将所述渲染处理后的帧图像进行转码处理,生成适合在网络传输和所述客户端解码的视频编码,将所述视频编码封装成网络数据包发送给所述客户端。
[0129]在本发明的另一个实施方式中,假设第一前端云服务器既运行应用代码,又进行渲染处理,客户端向第一前端云服务器发送的云应用服务请求中还包括云应用标识。
[0130]第一前端云服务器根据所述客户端发送的云应用标识,确定与所述云应用标识对应的应用代码,根据所述确定的应用代码构造与所述应用代码对应的渲染指令。
[0131]第一前端云服务器中与所述客户端的操作系统类型匹配的渲染处理模块获取所述渲染指令,将所述渲染指令发送给所述第一前端云服务器中与所述应用类型和/或所述客户端的显示分辨率匹配的图像计算单元或非图形计算单元。
[0132]与所述应用类型和/或所述客户端的显示分辨率匹配的图像计算单元或非图形计算单元根据所述渲染指令调用预先存储的渲染素材进行渲染处理,将所述渲染处理后的帧图像发送给第二计算模块中。
[0133]所述第二计算模块采用与所述云应用类型和/或所述客户端的显示分辨率匹配的转码码率,将所述渲染处理后的帧图像进行转码处理,生成适合在网络传输和所述客户端解码的视频编码,将所述视频编码封装成网络数据包发送给所述客户端。
[0134]在本发明的另一个实施方式中,为了提高处理性能,降低处理时延,第二计算模块中的压缩单元、编解码单元、流化单元中设有输入输出缓存,具体地,第二计算模块将所述渲染处理后的帧图像进行转码编码并生成适合所述客户端显示的视频数据,将所述视频数据发送给所述客户端,包括:
[0135]所述压缩单元将所述渲染处理后的帧图像进行压缩,并将所述压缩后的帧图像存放到所述编解码单元的输入缓存中;
[0136]编解码单元采用与所述云应用类型和/或所述客户端的显示分辨率匹配的转码码率将输入缓存中的压缩后的帧图像进行转码处理,转换成适合在网络传输和客户端解码的视频编码,并将视频编码存放到流化单元的输入缓存中;
[0137]流化单元采用所述客户端使用的传输协议和/或封装协议将输入缓存中的视频编码封装成网络数据包传送到客户端。
[0138]本实施例中的决策实体在满足云应用需要的条件下,根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,动态地确定给所述客户端提供云应用服务的第一前端云服务器,例如,将离客户端网络跳数最少的前端云服务器确定为第一前端云服务器,通过第一前端云服务器对来自客户端的云应用服务请求提供相应的云应用服务,从而可以减少客户端与第一前端云服务器之间的网络跳数,减少网络时延和丢包概率;
[0139]同时,本实施例中,将根据客户端云应用服务请求提供相应的云应用操服务部署到前端云服务器,使得大量并发在线用户产生的大流量不需要经过网络运营商的骨干网络,不会给运营商的骨干网络带来巨大流量冲击,可以降低对运营商的骨干网络带来巨大流量冲击。
[0140]本实施例中,将云应用计算中需要的渲染素材存储在前端云服务器中,可以降低渲染素材的获取时间,降低前端云服务器中计算模块与决策实体之间的数据交互量,从而可以提高计算速度,降低网络时延。
[0141]本实施例中,第一前端云服务器可以根据客户端请求的云应用类型和/或客户端的显示分辨率,确定与客户端请求的云应用类型和/或客户端的显示分辨率匹配的图像计算单元或非图像计算单元;例如,同一种应用在不同分辨率下显示需要的图形计算能力是不一样的,分辨率越高需求的图形计算越大。同一个分辨率下不同应用需求的图形计算能力也是不一样的,界面变化越剧烈需求的图形计算越大。从而可以实现根据客户端的显示分辨率和客户端请求的云应用类型选择合适的图像计算单元或非图像计算单元,需求高的就分配高性能的图像计算单元或非图像计算单元,需求低就分配低性能的图像计算单元或非图像计算单元,达到应用需求和计算能力的匹配,满足应用需求的同时充分使用物理硬件资源。
[0142]本实施例中,第二计算模块中的各单元均有输入输出缓存,例如,将渲染后的帧图像进行压缩处理后直接存放到编解码单元的输入缓存中,编解码单元将转码处理后视频数据直接放入到流化单元的输入缓存中,可以降低各单元之间数据的拷贝时间,提高应用服务的性能,降低处理时延。
[0143]图2为本发明另一实施例提供的云计算资源的分配方法的流程示意图;如图2所示,包括:
[0144]201、决策实体根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息,从所述多个前端云服务器中确定的、给所述客户端提供云应用服务的第一前端云服务器。
[0145]如图14所示,通常,客户端请求的云应用服务部署在决策实体中,因此,大量并发在线用户产生的大流量需要经过网络运营商的骨干网络,给运营商的骨干网络带来巨大流量冲击。
[0146]而本实施例中,如图11所示的系统架构图,将客户端请求的云应用操作部署到前端云服务器,从而使得大量并发在线用户产生的大流量不需要经过网络运营商的骨干网络,不会给运营商的骨干网络带来巨大流量冲击,因此,本发明实施例可以降低对运营商的骨干网络带来巨大流量冲击。
[0147]如图11所示的系统架构图,本实施例应用的系统包括客户端、多个前端云服务器和决策实体,其中,客户端和多个前端云服务器间通过终端侧远程协议通信,例如RDP、ICA、PCoIP,NX或者私有协议等。多个前端云服务器和决策实体间通过开放的云间协议通信,例如采用类似的XML格式或者JSON格式承载通信协议的内容。
[0148]其中,客户端包括输入设备和输出设备,可以安装云应用的客户端软件或者IE浏览器软件,完成对用户输入操作(例如键盘、鼠标、触摸滑动等)的采集与网络发送,或者客户端软件的渲染指令采集与网络发送。客户端还需处理来自第一前端云服务器发送的媒体流数据(包括视频、音频),完成解码和或解密,并通过输出设备完成内容显示。客户端包括但不限于智能手机、电脑、智能电视、个人电脑、便携机等设备。
[0149]在本实施例中,决策实体主要是根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,从所述多个前端云服务器中确定给所述客户端提供云应用服务的第一前端云服务器。其中,决策实体可以部署在中心云服务器中,或者也可以部署在前端云服务器中,本发明对比不作限定。
[0150]在本实施例中为客户端提供云应用服务的第一前端云服务器为决策实体根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,从所述多个前端云服务器中确定第一前端云服务器,其中,云应用服务例如包括云游戏或云桌面。
[0151]在本发明的一个实施方式中,决策实体获取客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,具体包括:
[0152]例如,用户通过客户端登录决策实体,通常,决策实体提示输入用户信息,对该用户信息进行验证,用户信息例如包括用户名和密码,验证通过后,决策实体向客户端响应,显示用户登录成功。
[0153]用户登录成功之后,可以选择欲请求的云应用(例如云游戏),客户端根据用户选择向决策实体发起携带有客户端的位置信息的请求消息。其中,客户端的位置信息例如包括客户端的因特网协议(英文:Internet Protocol,简称IP地址)、介质访问控制(英文:Media Access Control,简称MAC)地址或交换机端口号中的至少一项。
[0154]又例如,决策实体可以通过监控程序获得多个前端云服务器的状态信息,例如,每个前端云服务器的状态信息包括但不限于CPU负载、硬盘读写频率、内存使用、GPU负载等信息。[0155]又例如,决策实体可以通过查询客户端与多个前端云服务器之间的网络上的路由器信息,获得客户端与多个前端云服务器之间网络链路状态信息。
[0156]在本发明的一个实施方式中,为了减少网络时延和丢包概率,决策实体根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个第一前端云服务器之间对应的网络链路状态信息,动态地确定给客户端提供云应用服务的第一前端云服务器,具体实现包括:
[0157]例如,将离客户端网络跳数最少的前端云服务器确定为第一前端云服务器;
[0158]又例如,在实际应用中,有时候离客户端网络跳数最少的前端云服务器负荷超载或者由于网络状况不好导致与客户端之间的网络链路状态不好,不适合为客户端提供云应用服务时,决策实体可以将任一个与该客户端之间网络链路状态好的前端云服务器确定为第一前端云服务器。
[0159]202、将所述确定的第一前端云服务器的信息发送给所述客户端,以使所述客户端根据所述第一前端云服务器的信息,向所述第一前端云服务器发送云应用服务请求。
[0160]其中,第一前端云服务器的信息例如包括但不限于第一前端云服务器的IP地址。
[0161]客户端根据决策实体发送的第一前端云服务器的信息,向该第一前端云服务器发送云应用服务请求,以使所述第一前端云服务器根据所述云应用服务请求进行相应的云应用计算处理,向所述客户端返回所述云应用计算处理的结果。
[0162]在本发明的一个实施方式中,为了降低第一前端云服务器与决策实体之间的数据交互量,将云应用服务中需要的应用代码存储在第一前端云服务器中,可以降低应用代码的获取时间,从而可以提高计算速度,降低网络时延。
[0163]具体实现时,决策实体根据所述客户端发送的云应用标识,将与所述云应用标识对应的应用代码发送给所述第一前端云服务器,以使所述第一前端云服务器根据所述客户端发送的云应用标识,向所述客户端发送与所述云应用标识对应的应用代码。客户端根据应用代码向第一前端云服务器发送与应用代码对应的渲染指令包,以使第一前端云服务器根据所述渲染指令包中的渲染指令,调用预先存储的渲染素材进行渲染处理,将渲染后的帧图像进行转码处理,生成适合在网络传输和所述客户端解码的视频编码,将所述视频编码封装为网络数据包发送给所述客户端。
[0164]在本发明的另一个实施方式中,决策实体运行应用代码,第一前端云服务器进行渲染处理,具体实现时,决策实体根据所述客户端发送的云应用标识,确定与所述云应用标识对应的应用代码;向所述第一前端云服务器发送与所述确定的应用代码对应的渲染指令包,以使所述第一前端云服务器根据所述渲染指令包中的渲染指令,调用预先存储的渲染素材进行渲染处理,将渲染后的帧图像进行转码处理,生成适合在网络传输和所述客户端解码的视频编码,将所述视频编码封装为网络数据包发送给所述客户端。
[0165]本实施例中的决策实体在满足云应用需要的条件下,根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,动态地确定给所述客户端提供云应用服务的第一前端云服务器,例如,将离客户端网络跳数最少的前端云服务器确定为第一前端云服务器,通过第一前端云服务器对来自客户端的云应用服务请求提供相应的云应用服务,从而可以减少客户端与第一前端云服务器之间的网络跳数,减少网络时延和丢包概率;[0166]同时,本实施例中,将根据客户端云应用服务请求提供相应的云应用操服务部署到前端云服务器,使得大量并发在线用户产生的大流量不需要经过网络运营商的骨干网络,不会给运营商的骨干网络带来巨大流量冲击,可以降低对运营商的骨干网络带来巨大流量冲击。
[0167]图3为本发明另一实施例提供的云计算资源的分配方法的流程示意图;如图3所示,包括:
[0168]301、客户端接收所述决策实体发送的第一前端云服务器的信息,所述第一前端云服务器是所述决策实体根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息,从所述多个前端云服务器中确定的、给所述客户端提供云应用服务的前端云服务器。
[0169]如图14所示,通常,客户端请求的云应用操作部署在决策实体中,因此,大量并发在线用户产生的大流量需要经过网络运营商的骨干网络,给运营商的骨干网络带来巨大流量冲击。
[0170]而本实施例中,如图11所示的系统架构图,将客户端请求的云应用操作部署到前端云服务器,从而使得大量并发在线用户产生的大流量不需要经过网络运营商的骨干网络,不会给运营商的骨干网络带来巨大流量冲击,因此,本发明实施例可以降低对运营商的骨干网络带来巨大流量冲击。
[0171]如图11所示的系统架构图,本实施例应用的系统包括客户端、多个前端云服务器和决策实体,其中,客户端和多个前端云服务器间通过终端侧远程协议通信,例如RDP、ICA、PCoIP,NX或者私有协议等。多个前端云服务器和决策实体间通过开放的云间协议通信,例如采用类似的XML格式或者JSON格式承载通信协议的内容。
[0172]其中,客户端包括输入设备和输出设备,可以安装云应用的客户端软件或者IE浏览器软件,完成对用户输入操作(例如键盘、鼠标、触摸滑动等)的采集与网络发送,或者客户端软件的渲染指令采集与网络发送。客户端还需处理来自第一前端云服务器发送的媒体流数据(包括视频、音频),完成解码和或解密,并通过输出设备完成内容显示。客户端包括但不限于Pad、智能手机、电脑、智能电视、个人电脑PC、便携机等设备。
[0173]在本实施例中,决策实体主要是根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,从所述多个前端云服务器中确定给所述客户端提供云应用服务的第一前端云服务器。其中,决策实体可以部署在中心云服务器中,或者也可以部署在前端云服务器中,本发明对比不作限定。
[0174]在本实施例中为客户端提供云应用服务的第一前端云服务器为决策实体根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间的网络链路状态信息,确定的第一前端云服务器,其中,云应用服务例如包括云游戏或云桌面。
[0175]在本发明的一个实施方式中,决策实体获取客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间的网络链路状态信息,具体包括:
[0176]例如,用户通过客户端登录决策实体,通常,决策实体提示输入用户信息,对该用户信息进行验证,用户信息例如包括用户名和密码,验证通过后,决策实体向客户端响应,显示用户登录成功。
[0177]用户登录成功之后,可以选择欲请求的云应用(例如云游戏),客户端根据用户选择向决策实体发起携带有客户端的位置信息的请求消息。其中,客户端的位置信息例如包括客户端的因特网协议(英文:Internet Protocol,简称IP地址)、介质访问控制(英文:Media Access Control,简称MAC)地址或交换机端口号中的至少一项。
[0178]又例如,决策实体可以通过监控程序获得多个前端云服务器的状态信息,例如,每个前端云服务器的状态信息包括但不限于CPU负载、硬盘读写频率、内存使用、GPU负载等信息。
[0179]又例如,决策实体可以通过查询客户端与多个前端云服务器之间的网络上的路由器信息,获得客户端与多个前端云服务器之间网络链路状态信息。
[0180]在本发明的一个实施方式中,为了减少网络时延和丢包概率,决策实体根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,动态地确定给客户端提供云应用服务的第一前端云服务器,具体实现包括:
[0181]例如,将离客户端网络跳数最少的前端云服务器确定为第一前端云服务器;
[0182]又例如,在实际应用中,有时候离客户端网络跳数最少的前端云服务器负荷超载或者由于网络状况不好导致与客户端之间的网络链路状态不好,不适合为客户端提供云应用服务时,决策实体可以将任一个与该客户端之间网络链路状态好的前端云服务器确定为第一前端云服务器。
[0183]决策实体将确定的第一前端云服务器的信息发送给客户端,其中,第一前端云服务器的信息包括但不限于第一前端云服务器的IP地址。
[0184]302、根据所述第一前端云服务器的信息,向所述第一前端云服务器发送云应用服务请求。
[0185]在本发明的一个实施方式中,为了降低第一前端云服务器与决策实体之间的数据交互量,将云应用服务中需要的应用代码存储在第一前端云服务器中,可以降低应用代码的获取时间,从而可以提高计算速度,降低网络时延。
[0186]具体实现时,客户端根据所述第一前端云服务器的信息,向所述第一前端云服务器发送云应用服务请求,所述云应用服务请求中包含云应用标识;第一前端云服务器根据云应用标识确定与云应用标识对应的应用代码并发送给客户端;
[0187]客户端接收所述第一前端云服务器发送的与所述云应用标识对应的应用代码;
[0188]客户端根据所述应用代码,向所述第一前端云服务器发送与所述应用代码对应的渲染指令包,以使所述第一前端云服务器根据所述渲染指令包中的渲染指令调用预先存储的渲染素材进行渲染处理,将渲染后的帧图像进行转码处理,生成适合在网络传输和所述客户端解码的视频编码,将所述视频编码封装为网络数据包发送给所述客户端;
[0189]客户端接收所述第一前端云服务器发送的网络数据包,显示所述网络数据包中视频编码。
[0190]在本发明的另一个实施方式中,决策实体运行应用代码,第一前端云服务器进行渲染处理,具体实现时,客户端向所述决策实体发送云应用标识,以使所述决策实体根据所述云应用标识确定与所述云应用标识对应的应用代码,向所述第一前端云服务器发送与所述应用代码对应的渲染指令包,以使所述第一前端云服务器根据所述渲染指令包中的渲染指令调用预先存储的渲染素材进行渲染处理,将渲染后的帧图像进行转码处理,生成适合在网络传输和所述客户端解码的视频编码,将所述视频编码封装为网络数据包发送给所述客户端;
[0191]客户端接收所述第一前端云服务器发送的网络数据包,显示所述网络数据包中视频编码。
[0192]本实施例中的决策实体在满足云应用需要的条件下,根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,动态地确定给所述客户端提供云应用服务的第一前端云服务器,例如,将离客户端网络跳数最少的前端云服务器确定为第一前端云服务器,通过第一前端云服务器对来自客户端的云应用服务请求提供相应的云应用服务,从而可以减少客户端与第一前端云服务器之间的网络跳数,减少网络时延和丢包概率;
[0193]同时,本实施例中,将根据客户端云应用服务请求提供相应的云应用操服务部署到前端云服务器,使得大量并发在线用户产生的大流量不需要经过网络运营商的骨干网络,不会给运营商的骨干网络带来巨大流量冲击,可以降低对运营商的骨干网络带来巨大流量冲击。
[0194]图4为本发明另一实施例提供的云计算资源的分配方法的一种信令图;假设决策实体部署中中心云服务器中,客户端请求云游戏,云游戏的应用代码运行在客户端,前端云服务器进行云游戏的渲染处理,前端云服务器为客户端提供的云游戏的信令过程如图4所示,包括:
[0195]401、客户端向中心云服务器发送用户信息。
[0196]例如,用户通过客户端登录中心云服务器,中心云服务器提示输入用户信息(例如用户名和密码),用户通过客户端输入用户名和密码。
[0197]402、中心云服务器向客户端发送登录响应。
[0198]例如,中心云服务器对用户信息进行验证,验证通过后向客户端发送登录响应,显示用户登录成功。
[0199]403、客户端向中心云服务器发送客户端位置信息。
[0200]例如,用户选择欲进行的云游戏,向中心云服务器发起请求,其中,请求消息中携带有客户端位置信息。
[0201]404、中心云服务器确定给该客户端提供云应用服务的第一前端云服务器。
[0202]例如,中心云服务器可以通过监控程序获得多个前端云服务器的状态信息,其中,每个前端云服务器的状态信息包括但不限于CPU负载、硬盘读写频率、内存使用、GPU负载
等信息。
[0203]又例如,中心云服务器可以通过查询客户端与多个前端云服务器之间的网络上的路由器信息,获得客户端与多个前端云服务器之间对应的网络链路状态信息。
[0204]中心云服务器根据客户端的位置信息、多个前端云服务器的状态信息和/或客户端与多个前端云服务器之间对应的网络链路状态信息,确定给该客户端提供云应用服务的第一前端云服务器。
[0205]405、中心云服务器向客户端发送第一前端云服务器信息。[0206]例如,中心云服务器通过应答和重定向消息将第一前端云服务器信息发送给客户端,第一前端云服务器信息例如可以是第一前端云服务器的IP地址。
[0207]406、客户端向第一前端云服务器发送连接请求。
[0208]例如,用户通过客户端向第一前端云服务器发起连接请求,连接请求中携带有云游戏标识,第一前端云服务器根据云游戏标识进行游戏的初始化。
[0209]又例如,连接请求中还携带有客户端的显示分辨率、客户端的操作系统类型或游戏类型等信息。第一前端云服务器根据客户端的显示分辨率或游戏类型选择匹配的图形计算单元,并将该匹配的图形计算单元状态为不可用;第一前端云服务器根据客户端的操作系统类型选择渲染处理模块,例如,为Windows环境选择微软提供的3D渲染库(英文:Direct3D)值染处理模块,Android环境选择开放图形库(英文:0pen Graphics Library,简称OpenGL)渲染处理模块。第一前端云服务器根据客户端的显示分辨率或游戏类型确定匹配的转码码率。
[0210]407、第一前端云服务器向客户端发送连接请求响应。
[0211]例如,第一前端云服务器根据云游戏标识确定与云游戏标识对应的游戏代码,将确定的游戏代码携带在连接请求响应中发送给客户端。
[0212]又例如,第一前端云服务器也可以将匹配的图形计算单元的虚拟IP地址携带在连接请求响应中发送给客户端。
[0213]408、客户端向第一前端云服务器发送渲染指令包。
[0214]例如,客户端接收到游戏代码后,进行游戏设置,通过输入设备开始运行游戏程序,游戏程序将游戏中渲染指令封装为网络数据包,该包含有渲染指令的网络数据包称为渲染指令包,将渲染指令包发送给匹配的图形计算单元。为保证传输效率,可以对渲染指令包压缩。
[0215]409、第一前端云服务器根据接收的渲染指令调用渲染素材进行渲染处理,将渲染后的帧图像进行转码处理,生成适合在网络传输和所述客户端解码的视频编码,将所述视频编码封装为网络数据包。
[0216]例如,与客户端的操作系统类型匹配的渲染处理模块通过应用程序编程接口 API接收到渲染指令包后,获取渲染指令,将渲染指令发送给匹配的图形计算单元;
[0217]为了减少网络时延,第一前端云服务器预先存储有渲染素材,匹配的图形计算单元调用预先存储的渲染素材进行渲染处理,将渲染后的帧图像发送给第二计算模块,第二计算模块中的压缩单元可以对该渲染后的帧图像进行压缩处理,将压缩处理后的帧图像发送给编解码单元,编解码单元采用与客户端的显示分辨率或游戏类型确定匹配的转码码率进行转码处理,生成适合在网络传输和所述客户端解码的视频编码,将该视频编码发送流化单元,流化单元将该视频编码封装为网络数据包。
[0218]410、第一前端云服务器向客户端发送包含有视频编码的网络数据包。
[0219]重复步骤408-410。
[0220]411、客户端向第一前端云服务器发送离开游戏请求。
[0221]例如,第一前端云服务器可以将匹配的图形计算单元标记为可用状态。
[0222]412、第一前端云服务器向中心云服务器发送游戏进度、游戏时间或成绩等信息。
[0223]用户通过客户端从中心云服务器上退出登录。[0224]本实施例中的中心云服务器在满足云应用需要的条件下,根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,动态地确定给所述客户端提供云应用服务的第一前端云服务器,例如,将离客户端网络跳数最少的前端云服务器确定为第一前端云服务器,通过第一前端云服务器对来自客户端的云应用服务请求提供相应的云应用服务,从而可以减少客户端与前端云服务器之间的网络跳数,减少网络时延和丢包概率;
[0225]同时,本实施例中,将根据客户端云游戏请求提供相应的云游戏部署到前端云服务器,使得大量并发云游戏在线用户产生的大流量不需要经过网络运营商的骨干网络,不会给运营商的骨干网络带来巨大流量冲击,可以降低对运营商的骨干网络带来巨大流量冲击。
[0226]图5为本发明另一实施例提供的云计算资源的分配方法的又一种信令图;假设决策实体部署在中心服务器中,客户端请求云游戏,云游戏的应用代码运行在决策实体,前端云服务器进行云游戏的渲染处理,前端云服务器为客户端提供云游戏的信令过程如图5所示,包括:
[0227]501、客户端向中心云服务器发送用户信息。
[0228]例如,用户通过客户端登录中心云服务器,中心云服务器提示输入用户信息(例如用户名和密码),用户通过客户端输入用户名和密码。
[0229]502、中心云服务器向客户端发送登录响应。
[0230]例如,中心云服务器对用户信息进行验证,验证通过后向客户端发送登录响应,显示用户登录成功。
[0231 ] 503、客户端向中心云服务器发送客户端位置信息。
[0232]例如,用户选择欲进行的云游戏,向中心云服务器发起请求,其中,请求消息中携带有客户端位置信息。
[0233]504、中心云服务器确定给该客户端提供云应用服务的第一前端云服务器。
[0234]例如,中心云服务器可以通过监控程序获得多个前端云服务器的状态信息,其中,每个前端云服务器的状态信息包括但不限于CPU负载、硬盘读写频率、内存使用、GPU负载
等信息。
[0235]又例如,中心云服务器可以通过查询客户端与多个前端云服务器之间的网络上的路由器信息,获得客户端与多个前端云服务器之间对应的网络链路状态信息。
[0236]中心云服务器根据客户端的位置信息、多个前端云服务器的状态信息和/或客户端与多个前端云服务器之间对应的网络链路状态信息,确定给该客户端提供云应用服务的第一前端云服务器。
[0237]505、中心云服务器向客户端发送第一前端云服务器信息。
[0238]例如,中心云服务器通过应答和重定向消息将第一前端云服务器信息发送给客户端,第一前端云服务器信息例如可以是第一前端云服务器的IP地址。
[0239]506、客户端向第一前端云服务器发送连接请求。
[0240]例如,用户通过客户端向第一前端云服务器发起连接请求,连接请求中携带有客户端的显示分辨率、客户端的操作系统类型或游戏类型等信息。第一前端云服务器根据客户端的显示分辨率或游戏类型选择匹配的图形计算单元,并将该匹配的图形计算单元状态为不可用;第一前端云服务器根据客户端的操作系统类型选择渲染处理模块,例如,为Windows环境选择Direct3D值染处理模块,Android环境选择OpenGL值染处理模块。第一前端云服务器根据客户端的显示分辨率或游戏类型确定匹配的转码码率。
[0241 ] 507、客户端向中心云服务器发送云游戏标识。
[0242]例如,用户选择云游戏之后,通过客户端向中心云服务器发送云游戏标识,中心云服务器进行游戏的初始化,根据云游戏标识构造相应的渲染指令包。
[0243]508、中心云服务器向第一前端云服务器发送渲染指令包。
[0244]509、第一前端云服务器根据接收的渲染指令调用渲染素材进行渲染处理,将渲染后的帧图像进行转码处理,生成适合在网络传输和所述客户端解码的视频编码,将所述视频编码封装为网络数据包。
[0245]例如,与客户端的操作系统类型匹配的渲染处理模块通过应用程序编程接口 API接收到渲染指令包后,获取渲染指令,将渲染指令发送给匹配的图形计算单元;
[0246]为了减少网络时延,第一前端云服务器预先存储有渲染素材,匹配的图形计算单元调用预先存储的渲染素材进行渲染处理,将渲染后的帧图像发送给第二计算模块,第二计算模块中的压缩单元可以对该渲染后的帧图像进行压缩处理,将压缩处理后的帧图像发送给编解码单元,编解码单元采用与客户端的显示分辨率或游戏类型确定匹配的转码码率进行转码处理,生成适合在网络传输和所述客户端解码的视频编码,将该视频编码发送流化单元,流化单元将该视频编码封装为网络数据包。
[0247]510、第一前端云服务器向客户端发送包含有视频编码的网络数据包。
[0248]重复步骤508-510。
[0249]511、客户端向中心云服务器发送离开游戏请求。
[0250]例如,中心云服务器将游戏进度、游戏时间或成绩等信息进行归档。
[0251]用户通过客户端从中心云服务器上退出登录。
[0252]本实施例中的中心云服务器在满足云应用需要的条件下,根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个所述前端云服务器之间对应的网络链路状态信息,动态地确定给所述客户端提供云应用服务的第一前端云服务器,例如,将离客户端网络跳数最少的前端云服务器确定为第一前端云服务器,通过第一前端云服务器对来自客户端的云应用服务请求提供相应的云应用服务,从而可以减少客户端与前端云服务器之间的网络跳数,减少网络时延和丢包概率;
[0253]同时,本实施例中,将根据客户端云游戏请求提供相应的云游戏部署到前端云服务器,使得大量并发云游戏在线用户产生的大流量不需要经过网络运营商的骨干网络,不会给运营商的骨干网络带来巨大流量冲击,可以降低对运营商的骨干网络带来巨大流量冲击。
[0254]图6为本发明另一实施例提供的云计算资源的分配方法的又一种信令图;假设决策实体部署在中心云服务器上,客户端请求云游戏,前端云服务器运行云游戏代码并进行云游戏的渲染处理,前端云服务器为客户端提供云游戏的信令过程如图6所示,包括:
[0255]601、客户端向中心云服务器发送用户信息。
[0256]例如,用户通过客户端登录中心云服务器,中心云服务器提示输入用户信息(例如用户名和密码),用户通过客户端输入用户名和密码。[0257]602、中心云服务器向客户端发送登录响应。
[0258]例如,中心云服务器对用户信息进行验证,验证通过后向客户端发送登录响应,显示用户登录成功。
[0259]603、客户端向中心云服务器发送客户端位置信息。
[0260]例如,用户选择欲进行的云游戏,向中心云服务器发起请求,其中,请求消息中携带有客户端位置信息。
[0261]604、中心云服务器确定给该客户端提供云应用服务的第一前端云服务器。
[0262]例如,中心云服务器可以通过监控程序获得多个前端云服务器的状态信息,其中,每个前端云服务器的状态信息包括但不限于CPU负载、硬盘读写频率、内存使用、GPU负载
等信息。
[0263]又例如,中心云服务器可以通过查询客户端与多个前端云服务器之间的网络上的路由器信息,获得客户端与多个前端云服务器之间网络链路状态信息。
[0264]中心云服务器根据客户端的位置信息、多个前端云服务器的状态信息和/或客户端与多个前端云服务器之间网络链路状态信息,确定给该客户端提供云应用服务的第一前端云服务器。
[0265]605、中心云服务器向客户端发送第一前端云服务器信息。
[0266]例如,中心云服务器通过应答和重定向消息将第一前端云服务器信息发送给客户端,第一前端云服务器信息例如可以是第一前端云服务器的IP地址。
[0267]606、客户端向第一前端云服务器发送连接请求。
[0268]例如,用户通过客户端向第一前端云服务器发起连接请求,连接请求中携带有客户端的显示分辨率、客户端的操作系统类型或游戏类型等信息。第一前端云服务器根据客户端的显示分辨率或游戏类型选择匹配的图形计算单元,并将该匹配的图形计算单元状态为不可用;第一前端云服务器根据客户端的操作系统类型选择渲染处理模块,例如,为Windows环境选择Direct3D值染处理模块,Android环境选择OpenGL值染处理模块。第一前端云服务器根据客户端的显示分辨率或游戏类型确定匹配的转码码率。
[0269]607、客户端向第一前端云服务器发送云游戏标识。
[0270]例如,假设第一前端云服务器中预先存储有云游戏代码,客户端连接请求成功之后,用户通过客户端选择云游戏,将选择的云游戏标识发送给第一前端云服务器。
[0271]第一前端云服务器根据云游戏标识调用预先存储的与云游戏标识对应的云游戏代码,根据云游戏代码构造与云游戏代码对应的渲染指令。
[0272]608、第一前端云服务器根据构造的渲染指令,调用渲染素材进行渲染处理,将渲染后的帧图像进行转码处理,生成适合在网络传输和所述客户端解码的视频编码,将所述视频编码封装为网络数据包。
[0273]例如,与客户端的操作系统类型匹配的渲染处理模块将渲染指令发送给匹配的图形计算单元;
[0274]为了减少网络时延,第一前端云服务器预先存储有渲染素材,匹配的图形计算单元调用预先存储的渲染素材进行渲染处理,将渲染后的帧图像发送给第二计算模块,第二计算模块中的压缩单元可以对该渲染后的帧图像进行压缩处理,将压缩处理后的帧图像发送给编解码单元,编解码单元采用与客户端的显示分辨率或游戏类型确定匹配的转码码率进行转码处理,生成适合在网络传输和所述客户端解码的视频编码,将该视频编码发送流化单元,流化单元将该视频编码封装为网络数据包。
[0275]609、第一前端云服务器向客户端发送包含有视频编码的网络数据包。
[0276]重复步骤608-609。
[0277]610、客户端向第一前端云服务器发送离开游戏请求。
[0278]例如,第一前端云服务器可以将匹配的图形计算单元标记为可用状态。
[0279]611、第一前端云服务器向中心云服务器发送游戏进度、游戏时间或成绩等信息。
[0280]用户通过客户端从中心云服务器上退出登录。
[0281]本实施例中的中心云服务器在满足云应用需要的条件下,根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,动态地确定给所述客户端提供云应用服务的第一前端云服务器,例如,将离客户端网络跳数最少的前端云服务器确定为第一前端云服务器,通过第一前端云服务器对来自客户端的云应用服务请求提供相应的云应用服务,从而可以减少客户端与前端云服务器之间的网络跳数,减少网络时延和丢包概率;
[0282]同时,本实施例中,将根据客户端云游戏请求提供相应的云游戏部署到前端云服务器,使得大量并发云游戏在线用户产生的大流量不需要经过网络运营商的骨干网络,不会给运营商的骨干网络带来巨大流量冲击,可以降低对运营商的骨干网络带来巨大流量冲击。
[0283]图7为本发明另一实施例提供的云计算资源的分配方法的又一种信令图;假设决策实体部署在中心云服务器中,客户端请求云桌面,前端云服务器运行云桌面代码并进行云桌面的渲染处理,前端云服务器为客户端提供云桌面的信令过程如图7所示,包括:
[0284]701、客户端向中心云服务器发送用户信息。
[0285]例如,用户通过客户端登录中心云服务器,中心云服务器提示输入用户信息(例如用户名和密码),用户通过客户端输入用户名和密码。
[0286]702、中心云服务器向客户端发送登录响应。
[0287]例如,中心云服务器对用户信息进行验证,验证通过后向客户端发送登录响应,显示用户登录成功。
[0288]703、客户端向中心云服务器发送客户端位置信息。
[0289]例如,用户选择欲进行的云桌面,向中心云服务器发起请求,其中,请求消息中携带有客户端位置信息。
[0290]704、中心云服务器确定给该客户端提供云应用服务的第一前端云服务器。
[0291]例如,中心云服务器可以通过监控程序获得多个前端云服务器的状态信息,其中,每个前端云服务器的状态信息包括但不限于CPU负载、硬盘读写频率、内存使用、GPU负载
等信息。
[0292]又例如,中心云服务器可以通过查询客户端与多个前端云服务器之间的网络上的路由器信息,获得客户端与多个前端云服务器之间网络链路状态信息。
[0293]中心云服务器根据客户端的位置信息、多个前端云服务器的状态信息和/或客户端与多个前端云服务器之间网络链路状态信息,确定给该客户端提供云应用服务的第一前端云服务器。[0294]705、中心云服务器向客户端发送第一前端云服务器信息。
[0295]例如,中心云服务器通过应答和重定向消息将第一前端云服务器信息发送给客户端,第一前端云服务器信息例如可以是第一前端云服务器的IP地址。
[0296]706、客户端向第一前端云服务器发送连接请求。
[0297]例如,用户通过客户端向第一前端云服务器发起连接请求,连接请求中携带有客户端的显示分辨率、客户端的操作系统类型或游戏类型等信息。第一前端云服务器根据客户端的显示分辨率或游戏类型选择匹配的计算单元,并将该匹配的计算单元状态为不可用;第一前端云服务器根据客户端的操作系统类型选择渲染处理模块,例如,为Windows环境选择Direct3D渲染处理模块,Android环境选择OpenGL渲染处理模块。第一前端云服务器根据客户端的显示分辨率或游戏类型确定匹配的转码码率。
[0298]707、客户端向第一前端云服务器发送云桌面标识。
[0299]例如,假设第一前端云服务器中预先存储有云桌面代码,客户端连接请求成功之后,用户通过客户端选择云桌面,将选择的云桌面标识发送给第一前端云服务器。
[0300]第一前端云服务器根据云桌面标识调用预先存储的与云桌面标识对应的云桌面代码,根据云桌面代码构造与云桌面代码对应的渲染指令。
[0301]708、第一前端云服务器根据构造的渲染指令,调用渲染素材进行渲染处理,将渲染后的帧图像进行转码处理,生成适合在网络传输和所述客户端解码的视频编码,将所述视频编码封装为网络数据包。
[0302]例如,与客户端的操作系统类型匹配的渲染处理模块将渲染指令发送给匹配的计算单元;
[0303]为了减少网络时延,第一前端云服务器预先存储有渲染素材,匹配的计算单元调用预先存储的渲染素材进行渲染处理,将渲染后的帧图像发送给第二计算模块,第二计算模块中的压缩单元可以对该渲染后的帧图像进行压缩处理,将压缩处理后的帧图像发送给编解码单元,编解码单元采用与客户端的显示分辨率或游戏类型确定匹配的转码码率进行转码处理,生成适合在网络传输和所述客户端解码的视频编码,将该视频编码发送流化单元,流化单元将该视频编码封装为网络数据包。
[0304]709、第一前端云服务器向客户端发送包含有视频编码的网络数据包。
[0305]重复步骤708-709。
[0306]710、客户端向第一前端云服务器发送离开桌面请求。
[0307]例如,第一前端云服务器可以将匹配的计算单元标记为可用状态。
[0308]711、第一前端云服务器向中心云服务器发送桌面进度、桌面环境等信息。
[0309]用户通过客户端从中心云服务器上退出登录。
[0310]本实施例中的中心云服务器在满足云应用需要的条件下,根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,动态地确定给所述客户端提供云应用服务的第一前端云服务器,例如,将离客户端网络跳数最少的前端云服务器确定为第一前端云服务器,通过第一前端云服务器对来自客户端的云应用服务请求提供相应的云应用服务,从而可以减少客户端与前端云服务器之间的网络跳数,减少网络时延和丢包概率;
[0311]同时,本实施例中,将根据客户端云桌面请求提供相应的云桌面部署到前端云服务器,使得大量并发云桌面在线用户产生的大流量不需要经过网络运营商的骨干网络,不会给运营商的骨干网络带来巨大流量冲击,可以降低对运营商的骨干网络带来巨大流量冲击。
[0312]图8为本发明另一实施例提供的第一前端云服务器的结构示意图;应用于包括客户端、决策实体和多个前端云服务器的网络中,所述第一前端云服务器是决策实体根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息从所述多个前端云服务器中确定的、给所述客户端提供云应用服务的前端云服务器;如图8所示,所述第一前端云服务器包括:
[0313]接收模块81,用于接收所述客户端发送的云应用服务请求;
[0314]处理模块82,用于根据所述云应用服务请求进行相应的云应用计算处理;
[0315]发送模块83,用于向所述客户端返回所述云应用计算处理的结果。
[0316]举例来说,所述云应用服务请求中包括云应用标识;
[0317]发送模块83,还用于根据所述客户端发送的云应用标识,向所述客户端发送与所述云应用标识对应的应用代码,以使所述客户端向所述第一前端云服务器发送与所述应用代码对应的渲染指令包,所述渲染指令包包括渲染指令;或者
[0318]接收模块81,还用于接收所述决策实体发送的渲染指令包,所述渲染指令包为所述决策实体在根据所述客户端发送的云应用标识确定与所述云应用标识对应的应用代码后,向所述第一前端云服务器发送的与所述应用代码对应的渲染指令包,所述渲染指令包包括渲染指令;或者
[0319]所述第一前端云服务器还包括构建模块84,用于根据所述客户端发送的云应用标识,确定与所述云应用标识对应的应用代码,根据所述确定的应用代码构造与所述应用代码对应的渲染指令。
[0320]举例来说,所述云应用服务请求中还包括匹配信息,所述匹配信息包括云应用类型信息和/或所述客户端的显示分辨率信息;
[0321 ] 处理模块82,具体用于:
[0322]根据所述渲染指令,调用预先存储的渲染素材对帧图像进行渲染处理,将渲染处理后的帧图像进行压缩;采用与所述匹配信息相匹配的转码码率对所述压缩后的帧图像进行转码处理,生成视频编码;采用所述客户端使用的传输协议和/或封装协议将所述视频编码封装为网络数据包。
[0323]本实施例中的决策实体在满足云应用需要的条件下,根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,动态地确定给所述客户端提供云应用服务的第一前端云服务器,例如,将离客户端网络跳数最少的前端云服务器确定为第一前端云服务器,通过第一前端云服务器对来自客户端的云应用服务请求提供相应的云应用服务,从而可以减少客户端与前端云服务器之间的网络跳数,减少网络时延和丢包概率。
[0324]图9为本发明另一实施例提供的决策实体的结构示意图;应用于包括客户端、决策实体和多个前端云服务器的网络中,如图9所示,包括:
[0325]确定模块91,用于根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息,从所述多个前端云服务器中确定给所述客户端提供云应用服务的第一前端云服务器;
[0326]发送模块92,用于将所述确定的第一前端云服务器的信息发送给所述客户端,以使所述客户端根据所述第一前端云服务器的信息,向所述第一前端云服务器发送云应用服务请求。
[0327]举例来说,发送模块92,还用于在将所述确定的第一前端云服务器的信息发送给所述客户端之后,根据所述客户端发送的云应用标识,将与所述云应用标识对应的应用代码以及所述应用代码和所述云应用标识的对应关系发送给所述第一前端云服务器。
[0328]举例来说,确定模块91,还用于在发送模块92将所述确定的第一前端云服务器的信息发送给所述客户端之后,根据所述客户端发送的云应用标识,确定与所述云应用标识对应的应用代码;
[0329]发送模块92,还用于向所述第一前端云服务器发送与所述确定的应用代码对应的渲染指令包。
[0330]本实施例中的决策实体在满足云应用需要的条件下,根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,动态地确定给所述客户端提供云应用服务的第一前端云服务器,例如,将离客户端网络跳数最少的前端云服务器确定为第一前端云服务器,通过第一前端云服务器对来自客户端的云应用服务请求提供相应的云应用服务,从而可以减少客户端与前端云服务器之间的网络跳数,减少网络时延和丢包概率。
[0331]图10为本发明另一实施例提供的客户端的结构示意图;应用于包括客户端、决策实体和多个前端云服务器的网络中,如图10所示,包括:
[0332]接收模块11,用于接收所述决策实体发送的第一前端云服务器的信息,所述第一前端云服务器是所述决策实体根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息,从所述多个前端云服务器中确定的、给所述客户端提供云应用服务的前端云服务器;
[0333]发送模块12,用于根据所述第一前端云服务器的信息,向所述第一前端云服务器发送云应用服务请求。
[0334]举例来说,所述云应用服务请求中包含云应用标识;
[0335]接收模块11,还用于在发送模块12向所述第一前端云服务器发送所述云应用服务请求之后,接收所述第一前端云服务器发送的与所述云应用标识对应的应用代码;
[0336]发送模块12,还用于根据所述应用代码,向所述第一前端云服务器发送与所述应用代码对应的渲染指令包;
[0337]接收模块11,还用于接收所述第一前端云服务器发送的网络数据包,显示所述网络数据包中视频编码,其中,所述网络数据包是所述第一前端云服务器对帧图像进行处理得到的,所述处理包括根据所述渲染指令包进行的渲染处理。
[0338]举例来说,在所述发送模块12向所述第一前端云服务器发送所述云应用服务请求之后,发送模块12,还用于向所述决策实体发送云应用标识,以使所述决策实体根据所述云应用标识确定与所述云应用标识对应的应用代码,向所述第一前端云服务器发送与所述应用代码对应的渲染指令包;
[0339]接收模块11,还用于接收所述第一前端云服务器发送的网络数据包,显示所述网络数据包中视频编码,其中,所述网络数据包是所述第一前端云服务器对帧图像进行处理得到的,所述处理包括根据所述渲染指令包进行的渲染处理。
[0340]本实施例中的决策实体在满足云应用需要的条件下,根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,动态地确定给所述客户端提供云应用服务的第一前端云服务器,例如,将离客户端网络跳数最少的前端云服务器确定为第一前端云服务器,通过第一前端云服务器对来自客户端的云应用服务请求提供相应的云应用服务,从而可以减少客户端与前端云服务器之间的网络跳数,减少网络时延和丢包概率。
[0341]图15为本发明另一实施例提供的第一前端云服务器的结构示意图,应用于包括客户端、决策实体和多个前端云服务器的网络中,如图15所示,第一前端云服务器是决策实体根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息,从多个前端云服务器中确定的、给所述客户端提供云应用服务的前端云服务器。
[0342]第一前端云服务器包括:处理器、存储器和通信总线,所述存储器中保存有实现云计算资源的分配方法的指令,处理器通过通信总线与存储器通信,进一步地,第一前端云服务器还包括通信接口,通过通信接口与其他网元设备(例如决策实体和客户端)连接。
[0343]当处理器调取存储器中的指令时执行如下步骤:
[0344]接收客户端发送的云应用服务请求;
[0345]根据所述云应用服务请求进行相应的云应用计算处理,向所述客户端返回所述云应用计算处理的结果。
[0346]举例来说,所述云应用服务请求中包括云应用标识;处理器还执行如下步骤:
[0347]根据所述客户端发送的云应用标识,向所述客户端发送与所述云应用标识对应的应用代码,以使所述客户端向所述第一前端云服务器发送与所述应用代码对应的渲染指令包,所述渲染指令包包括渲染指令;或者
[0348]接收所述决策实体发送的渲染指令包,所述渲染指令包为所述决策实体在根据所述客户端发送的云应用标识确定的与所述云应用标识对应的应用代码后,向所述第一前端云服务器发送的与所述应用代码对应的渲染指令包,所述渲染指令包包括渲染指令;或者所述前端云服务器还包括:
[0349]根据所述客户端发送的云应用标识,确定与所述云应用标识对应的应用代码,根据所述确定的应用代码构造与所述应用代码对应的渲染指令。
[0350]举例来说,所述云应用服务请求中还包括匹配信息,所述匹配信息包括云应用类型信息和/或所述客户端的显示分辨率信息;处理器还执行如下步骤:
[0351]根据所述渲染指令,调用预先存储的渲染素材对帧图像进行渲染处理,将渲染处理后的帧图像进行压缩;采用与所述云应用类型信息和/或所述客户端的显示分辨率信息匹配的转码码率对所述压缩后的帧图像进行转码处理,生成视频编码;采用所述客户端使用的传输协议和/或封装协议将所述视频编码封装为网络数据包。
[0352]本实施例中的决策实体在满足云应用需要的条件下,根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,动态地确定给所述客户端提供云应用服务的第一前端云服务器,例如,将离客户端网络跳数最少的前端云服务器确定为第一前端云服务器,通过第一前端云服务器对来自客户端的云应用服务请求提供相应的云应用服务,从而可以减少客户端与前端云服务器之间的网络跳数,减少网络时延和丢包概率。
[0353]图16为本发明另一实施例提供的决策实体的结构示意图,应用于包括客户端、决策实体和多个前端云服务器的网络中,具体地,如图16所示,决策实体包括:处理器、存储器和通信总线,所述存储器中保存有实现云计算资源的分配方法的指令,处理器通过通信总线与存储器通信,进一步地,决策实体还包括通信接口,通过通信接口与其他网元设备(例如第一前端云服务器和客户端)连接。
[0354]当处理器调取存储器中的指令时执行如下步骤:
[0355]根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息,从所述多个前端云服务器中确定给所述客户端提供云应用服务的第一前端云服务器;
[0356]将所述确定的第一前端云服务器的信息发送给所述客户端,以使所述客户端根据所述第一前端云服务器的信息,向所述第一前端云服务器发送云应用服务请求。
[0357]举例来说,在将所述确定的第一前端云服务器的信息发送给所述客户端之后,处理器还执行如下步骤:
[0358]根据所述客户端发送的云应用标识,将与所述云应用标识对应的应用代码以及所述应用代码和所述云应用标识的对应关系发送给所述第一前端云服务器。
[0359]举例来说,在将所述确定的第一前端云服务器的信息发送给所述客户端之后,处理器还执行如下步骤:
[0360]根据所述客户端发送的云应用标识,确定与所述云应用标识对应的应用代码;
[0361]向所述第一前端云服务器发送与所述确定的应用代码对应的渲染指令包。
[0362]本实施例中的决策实体在满足云应用需要的条件下,根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,动态地确定给所述客户端提供云应用服务的第一前端云服务器,例如,将离客户端网络跳数最少的前端云服务器确定为第一前端云服务器,通过第一前端云服务器对来自客户端的云应用服务请求提供相应的云应用服务,从而可以减少客户端与前端云服务器之间的网络跳数,减少网络时延和丢包概率。
[0363]图17为本发明另一实施例提供的客户端的结构示意图;应用于包括客户端、决策实体和多个前端云服务器的网络中,具体地,如图17所示,客户端包括:处理器、存储器和通信总线,所述存储器中保存有实现云计算资源的分配方法的指令,处理器通过通信总线与存储器通信,进一步地,客户端还包括通信接口,通过通信接口与其他网元设备(例如第一前端云服务器和决策实体)连接。
[0364]当处理器调取存储器中的指令时执行如下步骤:
[0365]接收所述决策实体发送的第一前端云服务器的信息,所述第一前端云服务器是所述决策实体根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息,从所述多个前端云服务器中确定的、给所述客户端提供云应用服务的前端云服务器;
[0366]根据所述第一前端云服务器的信息,向所述第一前端云服务器发送云应用服务请求。
[0367]举例来说,所述云应用服务请求中包含云应用标识;在向所述第一前端云服务器发送所述云应用服务请求之后,处理器还执行如下步骤:
[0368]接收所述第一前端云服务器发送的与所述云应用标识对应的应用代码;
[0369]根据所述应用代码,向所述第一前端云服务器发送与所述应用代码对应的渲染指令包;
[0370]接收所述第一前端云服务器发送的网络数据包,显示所述网络数据包中视频编码,其中,所述网络数据包是所述第一前端云服务器对帧图像进行处理得到的,所述处理包括根据所述渲染指令包进行的渲染处理。
[0371]举例来说,在向所述第一前端云服务器发送所述云应用服务请求之后,处理器还执行如下步骤:
[0372]向所述决策实体发送云应用标识,以使所述决策实体根据所述云应用标识确定与所述云应用标识对应的应用代码,向所述第一前端云服务器发送与所述应用代码对应的渲染指令包;
[0373]接收所述第一前端云服务器发送的网络数据包,显示所述网络数据包中视频编码,其中,所述网络数据包是所述第一前端云服务器对帧图像进行处理得到的,所述处理包括根据所述渲染指令包进行的渲染处理。
[0374]本实施例中的决策实体在满足云应用需要的条件下,根据客户端的位置信息、多个前端云服务器的状态信息和/或所述客户端与多个前端云服务器之间对应的网络链路状态信息,动态地确定给所述客户端提供云应用服务的第一前端云服务器,例如,将离客户端网络跳数最少的前端云服务器确定为第一前端云服务器,通过第一前端云服务器对来自客户端的云应用服务请求提供相应的云应用服务,从而可以减少客户端与前端云服务器之间的网络跳数,减少网络时延和丢包概率。
[0375]本发明另一实施例提供了一种云计算资源的分配系统,包括上述图8对应的实施例中提供的前端云服务器、上述图9对应的实施例中提供的决策实体和上述图10对应的实施例中提供的客户端。前端云服务器的详细描述可以参见图8对应的实施例中的相关内容,决策实体的详细描述可以参见图9对应的实施例中的相关内容,客户端的详细描述可以参见图10对应的实施例中的相关内容,此处不再赘述。
[0376]在本发明中的“第一前端云服务器”中的“第一”并不表示顺序关系,而是为了使“第一前端云服务器”能够与“多个前端云服务器”相互区分。
[0377]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0378]在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0379]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0380]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0381]上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0382]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
【权利要求】
1.一种云计算资源的分配方法,其特征在于,所述方法应用于包括客户端、决策实体和多个前端云服务器的网络中,所述方法包括: 所述多个前端云服务器中的第一前端云服务器接收的所述客户端发送的云应用服务请求,所述第一前端云服务器是所述决策实体根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息,从所述多个前端云服务器中确定的、给所述客户端提供云应用服务的前端云服务器; 根据所述云应用服务请求进行相应的云应用计算处理,向所述客户端返回所述云应用计算处理的结果。
2.根据权利要求1所述的方法,其特征在于,所述云应用服务请求中包括云应用标识; 在所述根据所述云应用服务请求进行相应的云应用计算处理之前,所述方法还包括: 所述第一前端云服务器根据所述客户端发送的云应用标识,向所述客户端发送与所述云应用标识对应的应用代码,以使所述客户端向所述第一前端云服务器发送与所述应用代码对应的渲染指令包,所述渲染指令包包括渲染指令;或者 所述第一前端云服务器接收所述决策实体发送的渲染指令包,所述渲染指令包为所述决策实体在根据所述客户端发送的云应用标识确定与所述云应用标识对应的应用代码后,向所述第一前端云服务器发送的与所述应用代码对应的渲染指令包,所述渲染指令包包括渲染指令;或者 所述第一前端云服务器根据所述客户端发送的云应用标识,确定与所述云应用标识对应的应用代码,根据所述 确定的应用代码构造与所述应用代码对应的渲染指令。
3.根据权利要求2所述的方法,其特征在于,所述云应用服务请求中还包括匹配信息,所述匹配信息包括云应用类型信息和/或所述客户端的显示分辨率信息; 所述根据所述云应用服务请求进行相应的云应用计算处理,向所述客户端返回所述云应用计算处理的结果包括: 所述第一前端云服务器根据所述渲染指令,调用预先存储的渲染素材对帧图像进行渲染处理,将渲染处理后的帧图像进行压缩; 采用与所述匹配信息相匹配的转码码率对所述压缩后的帧图像进行转码处理,生成视频编码; 采用所述客户端使用的传输协议和/或封装协议将所述视频编码封装为网络数据包并发送给所述客户端。
4.一种云计算资源的分配方法,其特征在于,所述方法应用于包括客户端、决策实体和多个前端云服务器的网络中,所述方法包括: 所述决策实体根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息,从所述多个前端云服务器中确定给所述客户端提供云应用服务的第一前端云服务器; 将所述确定的第一前端云服务器的信息发送给所述客户端,以使所述客户端根据所述第一前端云服务器的信息,向 所述第一前端云服务器发送云应用服务请求。
5.根据权利要求4所述的方法,其特征在于,将所述确定的第一前端云服务器的信息发送给所述客户端之后,包括:所述决策实体根据所述客户端发送的云应用标识,将与所述云应用标识对应的应用代码以及所述应用代码和所述云应用标识的对应关系发送给所述第一前端云服务器。
6.根据权利要求4所述的方法,其特征在于,将所述确定的第一前端云服务器的信息发送给所述客户端之后,包括: 所述决策实体根据所述客户端发送的云应用标识,确定与所述云应用标识对应的应用代码; 向所述第一前端云服务器发送与所述确定的应用代码对应的渲染指令包。
7.—种云计算资源的分配方法,其特征在于,所述方法应用于包括客户端、决策实体和多个前端云服务器的网络中,所述方法包括: 所述客户端接收所述决策实体发送的第一前端云服务器的信息,所述第一前端云服务器是所述决策实体根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息,从所述多个前端云服务器中确定的、给所述客户端提供云应用服务的前端云服务器; 根据所述第一前端云服务器的信息,向所述第一前端云服务器发送云应用服务请求。
8.根据权利要求7所述的方法,其特征在于,所述云应用服务请求中包含云应用标识; 根据所述第一前端云服务器的信息,向所述第一前端云服务器发送云应用服务请求之后,所述方法还包括: 所述客户端接收所述第一前端云服务器发送的与所述云应用标识对应的应用代码; 根据所述应用代码,向所 述第一前端云服务器发送与所述应用代码对应的渲染指令包; 接收所述第一前端云服务器发送的网络数据包,显示所述网络数据包中视频编码,其中,所述网络数据包是所述第一前端云服务器对帧图像进行处理得到的,所述处理包括根据所述渲染指令包进行的渲染处理。
9.根据权利要求7所述的方法,其特征在于,所述根据所述第一前端云服务器的信息,向所述第一前端云服务器发送云应用服务请求之后,包括: 所述客户端向所述决策实体发送云应用标识,以使所述决策实体根据所述云应用标识确定与所述云应用标识对应的应用代码,向所述第一前端云服务器发送与所述应用代码对应的渲染指令包; 接收所述第一前端云服务器发送的网络数据包,显示所述网络数据包中视频编码,其中,所述网络数据包是所述第一前端云服务器对帧图像进行处理得到的,所述处理包括根据所述渲染指令包进行的渲染处理。
10.一种第一前端云服务器,应用于包括客户端、决策实体和多个前端云服务器的网络中,其特征在于,所述第一前端云服务器是决策实体根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息从所述多个前端云服务器中确定的、给所述客户端提供云应用服务的前端云服务器;所述第一前端云服务器包括: 接收模块,用于接收所述客户端发送的云应用服务请求; 处理模块,用于根据所述云应用服务请求进行相应的云应用计算处理;发送模块,用于向所述客户端返回所述云应用计算处理的结果。
11.根据权利要求10所述的第一前端云服务器,其特征在于,所述云应用服务请求中包括云应用标识; 所述发送模块,还用于根据所述客户端发送的云应用标识,向所述客户端发送与所述云应用标识对应的应用代码,以使所述客户端向所述第一前端云服务器发送与所述应用代码对应的渲染指令包,所述渲染指令包包括渲染指令;或者 所述接收模块,还用于接收所述决策实体发送的渲染指令包,所述渲染指令包为所述决策实体在根据所述客户端发送的云应用标识确定与所述云应用标识对应的应用代码后,向所述第一前端云服务器发送的与所述应用代码对应的渲染指令包,所述渲染指令包包括渲染指令;或者 所述第一前端云服务器还包括构建模块,所述构建模块用于根据所述客户端发送的云应用标识,确定与所述云应用标识对应的应用代码,根据所述确定的应用代码构造与所述应用代码对应的渲染指令。
12.根据权利要求11所述的第一前端云服务器,其特征在于,所述云应用服务请求中还包括匹配信息,所述匹配信息包括云应用类型信息和/或所述客户端的显示分辨率信息; 所述处理模块,具体用于: 根据所述渲染指令,调用预先存储的渲染素材对帧图像进行渲染处理,将渲染处理后的帧图像进行压缩;采用与所述匹配信息相匹配的转码码率对所述压缩后的帧图像进行转码处理,生成视频编码;采用所述客户端使用的传输协议和/或封装协议将所述视频编码封装为网络数据包。
13.一种决策实体,应 用于包括客户端、决策实体和多个前端云服务器的网络中,其特征在于,包括: 确定模块,用于根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息,从所述多个前端云服务器中确定给所述客户端提供云应用服务的第一前端云服务器; 发送模块,用于将所述确定的第一前端云服务器的信息发送给所述客户端,以使所述客户端根据所述第一前端云服务器的信息,向所述第一前端云服务器发送云应用服务请求。
14.根据权利要求13所述的决策实体,其特征在于,所述发送模块在将所述确定的第一前端云服务器的信息发送给所述客户端之后,还用于根据所述客户端发送的云应用标识,将与所述云应用标识对应的应用代码以及所述应用代码和所述云应用标识的对应关系发送给所述第一前端云服务器。
15.根据权利要求13所述的决策实体,其特征在于,在所述发送模块将所述确定的第一前端云服务器的信息发送给所述客户端之后,所述确定模块,还用于根据所述客户端发送的云应用标识,确定与所述云应用标识对应的应用代码; 所述发送模块,还用于向所述第一前端云服务器发送与所述确定的应用代码对应的渲染指令包。
16.一种客户端, 应用于包括客户端、决策实体和多个前端云服务器的网络中,其特征在于,包括:接收模块,用于接收所述决策实体发送的第一前端云服务器的信息,所述第一前端云服务器是所述决策实体根据所述客户端的位置信息、所述多个前端云服务器的状态信息和/或所述客户端与所述多个前端云服务器之间对应的网络链路状态信息,从所述多个前端云服务器中确定的、给所述客户端提供云应用服务的前端云服务器; 发送模块,用于根据所述第一前端云服务器的信息,向所述第一前端云服务器发送云应用服务请求。
17.根据权利要求16所述的客户端,其特征在于,所述云应用服务请求中包含云应用标识; 在所述发送模块向所述第一前端云服务器发送所述云应用服务请求之后,所述接收模块,还用于接收所述第一前端云服务器发送的与所述云应用标识对应的应用代码; 所述发送模块,还用于根据所述应用代码,向所述第一前端云服务器发送与所述应用代码对应的渲染指令包; 所述接收模块,还用于接收所述第一前端云服务器发送的网络数据包,显示所述网络数据包中视频编码,其中,所述网络数据包是所述第一前端云服务器对帧图像进行处理得到的,所述处理包括根据所述渲染指令包进行的渲染处理。
18.根据权利要求17所述的客户端,其特征在于,在所述发送模块向所述第一前端云服务器发送所述云应用服务请求之后,所述发送模块,还用于向所述决策实体发送云应用标识,以使所述决策实体根据所述云应用标识确定与所述云应用标识对应的应用代码,向所述第一前端云服务器发送与所述应用代码对应的渲染指令包; 所述接收模块,还用于接收所述第一前端云服务器发送的网络数据包,显示所述网络数据包中视频编码,其中,所述网络数据包是所述第一前端云服务器对帧图像进行处理得到的,所述处理包括根据所 述渲染指令包进行的渲染处理。
19.一种云计算资源的分配系统,其特征在于,包括: 如权利要求10-12任一项所述的第一前端云服务器; 如权利要求13-15任一项所述的决策实体; 如权利要求16-18任一项所述的 客户端。
【文档编号】H04N19/00GK103888485SQ201210553585
【公开日】2014年6月25日 申请日期:2012年12月19日 优先权日:2012年12月19日
【发明者】殷悦, 陈国海 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1