CN108093036B - 一种获取资源的方法及装置 - Google Patents
一种获取资源的方法及装置 Download PDFInfo
- Publication number
- CN108093036B CN108093036B CN201711298717.9A CN201711298717A CN108093036B CN 108093036 B CN108093036 B CN 108093036B CN 201711298717 A CN201711298717 A CN 201711298717A CN 108093036 B CN108093036 B CN 108093036B
- Authority
- CN
- China
- Prior art keywords
- cdn
- server
- network performance
- resource
- terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例中,提出一种获取资源的方法:接收终端发送的CDN设备信息获取请求;确定目标CDN设备,并将所述目标CDN设备的CDN设备信息发送至所述终端;在该方案中,终端所使用的CDN设备并不是预先设置且固定不变的,且该方案不会在首选CDN和备选CDN设备之间自动随意切换,而是通过向服务器发送请求来获取目标CDN设备的CDN设备信息,其中,服务器确定出的目标CDN设备是当前时间段内服务质量较佳的CDN设备,因此可以避免现有技术中所存在的缺陷。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种获取资源的方法及装置。
背景技术
随着互联网技术的发展,Web(网络)技术成为互联网上最重要、最广泛的业务方式之一。为了缓解互联网的数据传输压力、更高效地为用户提供数据服务,CDN(ContentDelivery Network,内容分发网络)技术应运而生,CDN的基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。具体为,在现有的网络中增加的一层新的网络架构,通过CDN将网站的内容发布到最接近用户的网络的边缘,使用户可以就近取得所需的内容,解决了由于网络带宽小、用户访问量大、网点分布不均等原因造成的网络拥挤、用户访问速度慢的状况,提高了用户访问网站的响应速度。
目前,主要有如下两种方式来选择CDN设备:
第一、从已有的CDN厂商中选择一个整体服务质量较好的厂商,在请求资源时仅使用这一个厂商提供的服务;但是,由于CDN厂商有很多家,各个厂商的服务质量也不尽相同,如果仅选择一个CDN厂商的话,会存在一些区域内该CDN厂商的服务质量比其他CDN厂商的服务质量差,及所选择的CDN厂商在一个区域内的节点失效时,导致用户无法获取资源的缺陷;
第二、从现有的CDN厂商中选择一个CDN厂商作为首选,再从中选择一个或多个CDN厂商作为备选,当终端从首选的CDN厂商获取资源失败或者获取资源的网络延时较长时切换至备选的CDN厂商。但是,用户从首选CDN厂商获取资源失败或者网络延时较长的情况并不一定是因为该CDN厂商造成的,可能是其他原因,如用户当前连接的Wi-Fi(Wireless-Fidelity,无线保真)信号较弱或者手机所处位置信号较弱,这种情况下,即便切换至备选的CDN厂商,也不能解决获取资源失败或者网络延时较长的缺陷,反而可能带来由于频繁切换CDN厂商导致的网络不稳定的缺陷。并且,该方法需要在应用程序中写入CDN厂商信息及相关逻辑,而应用程序发布之后,如果厂商信息或者相关逻辑需要更新,只能通过发布新的应用程序版本来解决,复杂度较高,并且,由于需要预先在应用程序中编写大量的代码,并且跟每个应用程序的具体的业务逻辑相关,不具有通用性,每开发一个应用程序,都要去重复编写相应的代码,从整个角度来讲,也存在复杂度较高的缺陷。
综上所述,目前的获取资源的方法存在服务质量较差、无法获取资源及复杂度较高的缺陷。
发明内容
上述获取资源的方法存在服务质量较差、无法获取资源及复杂度较高的缺陷,这是非常令人烦恼的过程。
为此,非常需要一种改进的获取资源的方法,以使解决上述缺陷。
在本发明实施方式的第一方面中,提供了一种获取资源的方法,包括:
接收终端发送的内容分发网络CDN设备信息获取请求;
确定目标CDN设备,并将所述目标CDN设备的CDN设备信息发送至所述终端。
在一个实施方式中,根据本发明的上述实施方式所述的方法,确定目标CDN设备,包括:
获取所述终端所处区域内的CDN设备的网络性能数据,并根据所述网络性能数据获得每一个CDN设备的网络性能质量;
根据所述网络性能质量筛选出所述目标CDN设备。
在一些实施方式中,根据本发明的上述任一实施方式所述的方法,每一个CDN设备的网络性能质量是第一服务器根据所述网络性能数据得到的,所述第一服务器为应用性能管理APM服务器。
在一些实施方式中,根据本发明的上述任一实施方式所述的方法,根据所述网络性能质量筛选出所述目标CDN设备,包括:
将对应的网络性能质量最高的CDN设备作为确定的目标CDN设备;或者
将按照对应的网络性能质量排序后的CDN设备作为确定的目标CDN设备。
在一些实施方式中,根据本发明的上述任一实施方式所述的方法,获取所述终端所处区域内的CDN设备的网络性能数据,包括:
接收所述终端所处区域内的终端发送的监测到的所述网络性能数据。
在一些实施方式中,根据本发明的上述任一实施方式所述的方法,所述网络性能数据包括网络响应时间和/或错误率。
在本发明实施方式的第二方面中,提供了一种获取资源的方法,包括:
响应于针对应用程序的第一资源打开指令,向服务器发送内容分发网络CDN设备信息获取请求;
接收所述服务器发送的CDN设备信息,并向与所述CDN设备信息相关联的目标CDN设备发送资源获取请求;
接收所述目标CDN设备发送的资源。
在一个实施方式中,根据本发明的上述实施方式所述的方法,向与所述CDN设备信息相关联的目标CDN设备发送资源获取请求之前,还包括:
监测从其他CDN设备和/或所述目标CDN设备获取资源时的网络性能数据,并将监测到的网络性能数据发送至所述服务器。
在一些实施方式中,根据本发明的上述任一实施方式所述的方法,向所述服务器发送CDN设备信息获取请求,包括:
通过所述应用程序中的httpdns软件工具开发包SDK向所述服务器发送CDN设备信息获取请求。
在一些实施方式中,根据本发明的上述任一实施方式所述的方法,将监测到的网络性能数据发送至所述服务器,包括:
通过所述应用程序中的应用性能管理APM SDK将监测到的网络性能数据发送至所述服务器。
在一些实施方式中,根据本发明的上述任一实施方式所述的方法,所述服务器包括第一服务器和第二服务器;
向服务器发送内容分发网络CDN设备信息获取请求,包括:
向所述第二服务器发送CDN设备信息获取请求;
将监测到的网络性能数据发送至所述服务器,包括:
将监测到的网络性能数据发送至所述第一服务器;
所述第二服务器为httpdns服务器,所述第一服务器为APM服务器。
在一些实施方式中,根据本发明的上述任一实施方式所述的方法,所述网络性能数据包括网络响应时间和/或错误率。
在一些实施方式中,根据本发明的上述任一实施方式所述的方法,所述CDN设备信息为对应的网络性能质量最高的CDN设备的CDN设备信息。
在一些实施方式中,根据本发明的上述任一实施方式所述的方法,所述CDN设备信息为按照对应的网络性能质量排序后的CDN设备的CDN设备信息;
所述方法还包括:
从按照网络性能质量排序后的CDN设备中选择出对应的网络性能质量最高的CDN设备作为所述目标CDN设备。
在一些实施方式中,根据本发明的上述任一实施方式所述的方法,所述方法还包括:
接收针对所述应用程序的第二资源打开指令,所述第一资源打开指令所请求打开的资源和所述第二资源打开指令所请求打开的资源是相同的或者是不同的;
判断接收所述第一资源打开指令的时间点和接收所述第二资源打开指令的时间点之间的时长是否达到阈值;
若所述时长达到所述阈值,再次向所述服务器发送CDN设备信息获取请求,以重新获取CDN设备信息;否则,直接向所述目标CDN设备发送资源获取请求。
在一些实施方式中,根据本发明的上述任一实施方式所述的方法,在向所述目标CDN设备发送资源获取请求之后,若未接收到所述目标CDN设备发送的资源,所述方法还包括:
再次向所述服务器发送CDN设备信息获取请求,以重新获取CDN设备信息。
在本发明实施方式的第三方面中,提供了一种获取资源的服务器,包括:
接收单元,用于接收终端发送的内容分发网络CDN设备信息获取请求;
确定单元,用于确定目标CDN设备;
发送单元,用于将所述目标CDN设备的CDN设备信息发送至所述终端。
在一个实施方式中,根据本发明的上述实施方式所述的服务器,所述确定单元包括获取单元和筛选单元,其中:
所述获取单元,用于获取所述终端所处区域内的CDN设备的网络性能数据,并根据所述网络性能数据获得每一个CDN设备的网络性能质量;
所述筛选单元,用于根据所述网络性能质量筛选出所述目标CDN设备。
在一些实施方式中,根据本发明的上述任一实施方式所述的服务器,每一个CDN设备的网络性能质量是第一服务器根据所述网络性能数据得到的,所述第一服务器为应用性能管理APM服务器。
在一些实施方式中,根据本发明的上述任一实施方式所述的服务器,所述筛选单元根据所述网络性能质量筛选出所述目标CDN设备时,具体为:
将对应的网络性能质量最高的CDN设备作为确定的目标CDN设备;或者
将按照对应的网络性能质量排序后的CDN设备作为确定的目标CDN设备。
在一些实施方式中,根据本发明的上述任一实施方式所述的服务器,所述获取单元获取所述终端所处区域内的CDN设备的网络性能数据,具体为:
接收所述终端所处区域内的终端发送的监测到的所述网络性能数据。
在一些实施方式中,根据本发明的上述任一实施方式所述的服务器,所述网络性能数据包括网络响应时间和/或错误率。
在本发明实施方式的第四方面中,提供了一种获取资源的终端,包括:
发送单元,用于响应于针对应用程序的第一资源打开指令,向服务器发送内容分发网络CDN设备信息获取请求;
接收单元,用于接收所述服务器发送的CDN设备信息;
所述发送单元还用于,向与所述CDN设备信息相关联的目标CDN设备发送资源获取请求;
所述接收单元还用于,接收所述目标CDN设备发送的资源。
在一个实施方式中,根据本发明的上述实施方式所述的终端,还包括监测单元,用于监测从其他CDN设备和/或所述目标CDN设备获取资源时的网络性能数据;
所述发送单元还用于,将监测到的网络性能数据发送至所述服务器。
在一些实施方式中,根据本发明的上述任一实施方式所述的终端,所述发送单元向所述服务器发送CDN设备信息获取请求时,具体为:
通过所述应用程序中的httpdns软件工具开发包SDK向所述服务器发送CDN设备信息获取请求。
在一些实施方式中,根据本发明的上述任一实施方式所述的终端,所述发送单元将监测到的网络性能数据发送至所述服务器时,具体为:
通过所述应用程序中的应用性能管理APM SDK将监测到的网络性能数据发送至所述服务器。
在一些实施方式中,根据本发明的上述任一实施方式所述的终端,所述服务器包括第一服务器和第二服务器;
所述发送单元向服务器发送内容分发网络CDN设备信息获取请求,具体为:
向所述第二服务器发送CDN设备信息获取请求;
所述发送单元将监测到的网络性能数据发送至所述服务器,具体为:
将监测到的网络性能数据发送至所述第一服务器;
所述第二服务器为httpdns服务器,所述第一服务器为APM服务器。
在一些实施方式中,根据本发明的上述任一实施方式所述的终端,所述网络性能数据包括网络响应时间和/或错误率。
在一些实施方式中,根据本发明的上述任一实施方式所述的终端,所述CDN设备信息为对应的网络性能质量最高的CDN设备的CDN设备信息。
在一些实施方式中,根据本发明的上述任一实施方式所述的终端,所述CDN设备信息为按照对应的网络性能质量排序后的CDN设备的CDN设备信息;
还包括筛选单元,用于从按照网络性能质量排序后的CDN设备中选择出对应的网络性能质量最高的CDN设备作为所述目标CDN设备。
在一些实施方式中,根据本发明的上述任一实施方式所述的终端,所述接收单元还用于,接收针对所述应用程序的第二资源打开指令,所述第一资源打开指令所请求打开的资源和所述第二资源打开指令所请求打开的资源是相同的或者是不同的;
还包括判断单元,用于判断接收所述第一资源打开指令的时间点和接收所述第二资源打开指令的时间点之间的时长是否达到阈值;
所述发送单元还用于,若所述时长达到所述阈值,再次向所述服务器发送CDN设备信息获取请求,以重新获取CDN设备信息;否则,直接向所述目标CDN设备发送资源获取请求。
在一些实施方式中,根据本发明的上述任一实施方式所述的终端,所述发送单元还用于,再次向所述服务器发送CDN设备信息获取请求,以重新获取CDN设备信息。
在本发明实施方式的第五方面中,提供了一种获取资源的方法,包括:
终端响应于针对应用程序的第一资源打开指令,向服务器发送内容分发网络CDN设备信息获取请求;
所述服务器根据所述CDN设备信息获取请求,向所述终端发送CDN设备信息;
所述终端向与所述CDN设备信息相关联的目标CDN设备发送资源获取请求;
所述终端接收所述目标CDN设备发送的资源。
在本发明实施方式的第六方面中,提供了一种获取资源的系统,包括如第三方面或者第三方面的任意一实施例所述的服务器和如第四方面或者第四方面的任意一实施例所述的终端。
在本发明实施方式的第七方面中,提供了一种计算装置,包括:
一个或者多个处理器;
存储器;
存储在所述存储器中的程序,当被所述一个或者多个处理器执行时,所述程序使所述处理器执行如上所述的方法。
在本发明实施方式的第八方面中,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被处理器执行时,使得所述处理器执行如上所述的方法。
本发明实施例中,提出一种获取资源的方法:接收终端发送的CDN设备信息获取请求;确定目标CDN设备,并将所述目标CDN设备的CDN设备信息发送至所述终端;在该方案中,终端所使用的CDN设备并不是预先设备且固定不变的,且该方案不会在首选CDN和备选CDN设备之间自动随意切换,而是通过向服务器发送请求来获取目标CDN设备的CDN设备信息,其中,服务器确定出的目标CDN设备是当前时间段内服务质量较佳的CDN设备,因此可以避免现有技术中所存在的缺陷。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了本发明实施例中提出的获取资源的一种流程图;
图2示意性地示出了本发明实施例中提出的获取资源的另一种流程图;
图3示意性地示出了本发明实施例中提出的获取资源的场景示意图;
图4示意性地示出了本发明实施例中提出的获取资源的具体示意图;
图5示意性地示出了本发明实施例中提出的获取资源的另一种流程图;
图6示意性地示出了本发明实施例中提出的服务器的示意图;
图7示意性地示出了本发明实施例中提出的终端的示意图;
图8示意性地示出了本发明实施例中提出的获取资源的装置的一种示意图;
图9示意性地示出了本发明实施例中提出的获取资源的装置的另一种示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
为了能更好地理解本发明所提出的方案,下面对本发明中可能涉及到的技术术语简单介绍。
应用程序,是指安装在手机等智能设备上的程序,一般需要与服务端互相配合运行。常见的应用主要分两类:一类是预装的系统应用,比如短信、照片、备忘录、Safari等;还有一类是第三方应用,比如资讯类的网易新闻、音视频类的网易云音乐等等。
Httpdns:是指基于http(HyperText Transfer Protocol,超文本传输协议)协议的域名解析技术,代替目前基于UDP(User Datagram Protocol,用户数据报协议)的、向运营商Local DNS解析的传统服务,可以有效避免域名劫持和调度不精准的问题。
APM(Application Performance Management,应用性能管理),主要指对企业的关键业务应用进行监测、优化,提高企业应用的可靠性和质量,保证用户得到良好的服务,降低IT(Information Technology,信息技术)总拥有成本。
CDN架构的基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。
SDK(Software Development Kit,软件开发工具包)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,在采用CDN设备的场景中,可以不给终端预先设置固定的CDN设备,或者首选的CDN设备,而是在需要的时候终端发送请求,触发其他设备或者服务器确定目标CDN设备,并将确定的目标CDN设备的CDN设备信息发送至终端,进而终端可以采用接收到的CDN设备信息的目标CDN设备来获取资源,其他设备或者服务器在确定目标CDN设备时可以根据相关参数来筛选出目标CDN设备,如,采用网络性能质量等参数来筛选,这样,每次确定出的目标CDN设备都是当前时间段内性能较佳的CDN设备,进而可以避免现有技术中采用固定的CDN设备或者从首选CDN设备切换至备选CDN设备所带来的服务质量较差及无法获取资源的缺陷。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
例如,多媒体资源缓存在CDN设备1、CDN设备2、CDN设备3和CDN设备4上,终端要获取该多媒体资源时,可以向服务器发送CDN设备信息获取请求,服务器确定目标设备,例如,服务器获取CDN设备的网络性能数据,并根据获取的网络性能数据获得每一个CDN设备的网络性能质量:CDN设备1的网络性能质量1、CDN设备2的网络性能质量2、CDN设备3的网络性能质量3和CDN设备4的网络性能质量4,其中,网络性能质量1是所有网络性能质量中的最大值,则服务器将CDN设备1的CDN设备信息发送至终端,终端从CDN设备1中获取该多媒体资源。
示例性方法
下面结合上述应用场景,参考图1来描述根据本发明示例性实施方式的用于获取资源的方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
图1示意性地示出了根据本发明实施方式的获取资源的方法10的流程示意图。如图1所示,该方法10可以包括步骤100、110。
步骤100:接收终端发送的CDN设备信息获取请求;
步骤110:确定目标CDN设备,并将所述目标CDN设备的CDN设备信息发送至所述终端。
本发明实施例中,确定目标CDN设备的方式有多种,可选地,可以采用如下方式:
获取所述终端所处区域内的CDN设备的网络性能数据,并根据所述网络性能数据获得每一个CDN设备的网络性能质量;
根据所述网络性能质量筛选出所述目标CDN设备。
例如,终端要获取网易云音乐的歌曲,终端处于杭州,网易云音乐的歌曲在杭州地区的CDN设备1、CDN设备2、CDN设备3、CDN设备4中有缓存,那么在确定CDN设备时,先获取CDN设备1、CDN设备2、CDN设备3、CDN设备4的网络性能数据,并根据网络性能数据获得每一个CDN设备的网络性能质量;然后,根据所述网络性能质量从CDN设备1、CDN设备2、CDN设备3、CDN设备4中筛选出所述目标CDN设备。
上述的区域是以市为划分粒度,当然,为了提高资源获取效率,可以再提高区域的划分粒度,例如,以市所包括的区为划分粒度,如终端处于北京市的昌平区,则终端要获取网易云音乐的歌曲时,可以从昌平区中缓存有网易云音乐的歌曲的CDN设备5、CDN设备6、CDN设备7中筛选目标CDN设备。
为了提高方法10的执行主体的效率,节省资源,本发明实施例中,可选地,每一个CDN设备的网络性能质量是第一服务器根据所述网络性能数据得到的,所述第一服务器为APM服务器。也就是说,方法10的执行主体筛选CDN设备所采用的网络性能质量可以是第一服务器根据所述网络性能数据得到后,再发送至方法10的执行主体。
当然,也可以是方法10的执行主体来执行上述操作,即方法10的执行主体获取所述终端所处区域内的CDN设备的网络性能数据,并根据所述网络性能数据获得每一个CDN设备的网络性能质量;然后,方法10的执行主体根据所述网络性能质量筛选出所述目标CDN设备。上述只是两种具体示例,并不限定于此。
本发明实施例中,根据所述网络性能质量筛选出所述目标CDN设备的方式有多种,可选地,可以采用如下方式:
将对应的网络性能质量最高的CDN设备作为确定的目标CDN设备;或者
将按照对应的网络性能质量排序后的CDN设备作为确定的目标CDN设备。
例如,有5个CDN设备:CDN设备1、CDN设备2、CDN设备3、CDN设备4、CDN设备5,按照5个CDN设备的网络性能质量的降序的排序方式得到5个CDN设备的降序排序方式为:CDN设备2、CDN设备5、CDN设备1、CDN设备3、CDN设备4,那么目标设备可以为CDN设备2,此时,可以直接将CDN设备2的CDN设备信息发送至终端,终端直接从CDN设备2中获取资源即可,或者,目标设备也可以是CDN设备2、CDN设备5、CDN设备1、CDN设备3、CDN设备4的降序排序后的5个CDN设备,终端在接收到按照降序排序后的5个CDN设备的CDN设备信息后,从5个CDN设备中选择出目标CDN设备,即将CDN设备2作为目标CDN设备,然后从CDN设备2中获取资源。
当然也可以按照升序的方式排列,在此不再具体详述。
本发明实施例中,获取所述终端所处区域内的CDN设备的网络性能数据的方式有多种,可选地,可以采用如下方式:
接收所述终端所处区域内的终端发送的监测到的所述网络性能数据。
例如,终端所处的区域中有50万个终端,50万个终端监测网络性能数据,并将监测到的网络性能数据发送至方法10的执行主体。
上述描述的是,终端直接将监测到的网络性能数据发送至方法10的执行主体,当然,终端也可以将监测到的网络性能数据发送至第一服务器,第一服务器根据网络性能数据得到网络性能质量后,再将网络性能质量发送至方法10的执行主体。
本发明实施例中,可选地,所述网络性能数据包括网络响应时间和/或错误率。
图2示意性地示出了根据本发明实施方式的获取资源的方法20的流程示意图。如图2所示,该方法20可以包括步骤200、210和220。
步骤200:响应于针对应用程序的第一资源打开指令,向服务器发送CDN设备信息获取请求;
步骤210:接收所述服务器发送的CDN设备信息,并向与所述CDN设备信息相关联的目标CDN设备发送资源获取请求;
步骤220:接收所述目标CDN设备发送的资源。
例如,如图3所示,用户点击终端A的网易云音乐中的歌曲1,终端A接收到点击指令后,向服务器发送CDN设备信息获取请求,服务器从CDN设备1、CDN设备2和CDN设备3中筛选出目标CDN设备(CDN设备2),并将CDN设备2的CDN设备信息发送至终端A,终端A向CDN设备2发送资源获取请求,然后CDN设备2向终端A发送资源。
本发明实施例中,进一步的,向与所述CDN设备信息相关联的目标CDN设备发送资源获取请求之前,还包括:
监测从其他CDN设备和/或所述目标CDN设备获取资源时的网络性能数据,并将监测到的网络性能数据发送至所述服务器。
需要说明的是,方法20是站在一个设备的角度来写的,而服务器不仅可以接收到方法20这个执行主体发送的监测到的网络性能数据,还能接收到其他设备发送的监测到的网络性能数据,这样,服务器综合多个终端发送的网络性能数据,可以从中筛选出服务器质量较佳的CDN设备。
本发明实施例中,向所述服务器发送CDN设备信息获取请求的方式有多种,可选地,可以采用如下方式:
通过所述应用程序中的httpdns SDK向所述服务器发送CDN设备信息获取请求。
其中,httpdns SDK可以集成在应用程序中。
本发明实施例中,将监测到的网络性能数据发送至所述服务器的方式有多种,可选地,可以采用如下方式:
通过所述应用程序中的APM SDK将监测到的网络性能数据发送至所述服务器。其中,APM SDK可以集成在应用程序中。
本发明实施例中,可选地,所述服务器包括第一服务器和第二服务器;
此时,向服务器发送内容分发网络CDN设备信息获取请求,包括:
向所述第二服务器发送CDN设备信息获取请求;
将监测到的网络性能数据发送至所述服务器,包括:
将监测到的网络性能数据发送至所述第一服务器;
所述第二服务器为httpdns服务器,所述第一服务器为APM服务器。
需要说明的是,第一服务器接收到网络性能数据之后可以将网络性能数据综合处理得到网络性能质量,并将网络性能质量发送至第一服务器,由第一服务器根据网络性能质量确定目标CDN设备,并将确定出的目标CDN设备的相关信息发送至终端。
如图4所示,终端A的应用程序中集成的APM SDK监测网络性能数据,并将监测到的网络性能数据发送至APM服务器,APM服务器根据网络性能数据得到网络性能质量,并将得到的网络性能质量发送至httpdns服务器,httpdns服务器根据网络性能质量确定出目标CDN设备,并在接收到终点A的应用程序中集成的httpdns SDK发送的CDN设备信息获取请求后,将目标CDN设备的CDN设备信息发送至终端A。
本发明实施例中,可选地,所述网络性能数据包括网络响应时间和/或错误率,当然,上述只是几种示例,但是并不限于此。
本发明实施例中,可选地,所述CDN设备信息为对应的网络性能质量最高的CDN设备的CDN设备信息,这样,方法20的执行主体可以直接将接收到的CDN设备信息的CDN设备作为要获取资源的设备。
本发明实施例中,可选地,所述CDN设备信息为按照对应的网络性能质量排序后的CDN设备的CDN设备信息;
此时,进一步的,所述方法还包括:
从按照网络性能质量排序后的CDN设备中选择出对应的网络性能质量最高的CDN设备作为所述目标CDN设备。
也就是说,如果方法20的执行主体接收到的CDN设备信息是排序后的CDN设备列表的话,方法20的执行主体要从中选择出CDN设备,然后再向选择出的CDN设备获取资源。
在实际应用中,多个CDN设备中网络性能质量最高的CDN设备不是固定不变的,可能发生变化,例如,在2017年12月1日9:00-10:00,CDN设备1、CDN设备2、CDN设备3、CDN设备4中CDN设备1的网络性能质量最高,而在2017年12月1日10:00-11:00中,可能是CDN设备2的网络性能质量最高,在2017年12月1日11:00-12:00中,可能是CDN设备4的网络性能质量最高,因此,本发明实施例中,进一步的,所述方法还包括:
接收针对所述应用程序的第二资源打开指令,所述第一资源打开指令所请求打开的资源和所述第二资源打开指令所请求打开的资源是相同的或者是不同的;
判断接收所述第一资源打开指令的时间点和接收所述第二资源打开指令的时间点之间的时长是否达到阈值;
若所述时长达到所述阈值,再次向所述服务器发送CDN设备信息获取请求,以重新获取CDN设备信息;否则,直接向所述目标CDN设备发送资源获取请求。
例如,用户在2017年12月04日的9:00第一次点击终端A的网易云音乐中的歌曲1后,最终从CDN设备1中获取歌曲1的资源,由于终端A自动关机歌曲1停止播放,用户重新启动终端A后,在2017年12月04日的9:02分第二次点击网易云音乐中的歌曲1时,由于第一次点击歌曲1和第二次点击歌曲1的时间点之间的时长还没有达到阈值,终端A直接向CDN设备1发送资源获取请求,从CDN设备1中获取歌曲1的资源。
上述示例中描述的是两次点击歌曲1的时间间隔未达到阈值,但是在实际应用中可能达到阈值,例如,用户在2017年12月04日的9:00第一次点击终端A的网易云音乐中的歌曲1后,最终从CDN设备1中获取歌曲1的资源,在2017年12月04日的14:02分第二次点击网易云音乐中的歌曲1时,由于第一次点击歌曲1和第二次点击歌曲1的时间点之间的时长达到阈值,服务器需要再重新确定CDN设备,如重新确定出的CDN设备为CDN设备4,此时,终端A从CDN设备4上获取歌曲1的资源。
在实际应用中,可能存在发送CDN设备信息获取请求之后并没有获取到CDN设备信息,即获取信息失败,此时,可以重新发送请求,以便重新获取CDN设备信息,因此,进一步的,在向所述目标CDN设备发送资源获取请求之后,若未接收到所述目标CDN设备发送的资源,所述方法还包括:
再次向所述服务器发送CDN设备信息获取请求,以重新获取CDN设备信息。
例如,终端A向服务器发送CDN设备信息获取请求后,在预设时长内并未接收到CDN设备信息,此时,终端A可以再次向服务器发送CDN设备信息获取请求,以重新获取CDN设备信息。
参阅图5所示,本发明实施例中,还提出一种获取资源的方法50,包括:
步骤500:终端响应于针对应用程序的第一资源打开指令,向服务器发送内容分发网络CDN设备信息获取请求;
步骤510:所述服务器根据所述CDN设备信息获取请求,向所述终端发送CDN设备信息;
步骤520:所述终端向与所述CDN设备信息相关联的目标CDN设备发送资源获取请求;
步骤530:所述终端接收所述目标CDN设备发送的资源。
示例性装置
在介绍了本发明示例性实施方式的方法之后,接下来,参考图6对本发明示例性实施方式的、用于获取资源的服务器60进行描述,服务器60包括:
接收单元600,用于接收终端发送的内容分发网络CDN设备信息获取请求;
确定单元610,用于确定目标CDN设备;
发送单元620,用于将所述目标CDN设备的CDN设备信息发送至所述终端。
本发明实施例中,可选地,所述确定单元610包括获取单元610A和筛选单元610B,其中:
所述获取单元610A,用于获取所述终端所处区域内的CDN设备的网络性能数据,并根据所述网络性能数据获得每一个CDN设备的网络性能质量;
所述筛选单元610B,用于根据所述网络性能质量筛选出所述目标CDN设备。
例如,终端要获取网易云音乐的歌曲,终端处于杭州,网易云音乐的歌曲在杭州地区的CDN设备1、CDN设备2、CDN设备3、CDN设备4中有缓存,那么服务器60在确定CDN设备时,获取单元610A先获取CDN设备1、CDN设备2、CDN设备3、CDN设备4的网络性能数据,并根据网络性能数据获得每一个CDN设备的网络性能质量;然后,筛选单元610B根据所述网络性能质量从CDN设备1、CDN设备2、CDN设备3、CDN设备4中筛选出所述目标CDN设备。
上述的区域是以市为划分粒度,当然,为了提高资源获取效率,可以再提高区域的划分粒度,例如,以市所包括的区为划分粒度,如终端处于北京市的昌平区,则终端要获取网易云音乐的歌曲时,可以从昌平区中缓存有网易云音乐的歌曲的CDN设备5、CDN设备6、CDN设备7中筛选目标CDN设备。
为了提高服务器60的效率,节省资源,本发明实施例中,可选地,每一个CDN设备的网络性能质量是第一服务器根据所述网络性能数据得到的,所述第一服务器为应用性能管理APM服务器。服务器60筛选CDN设备所采用的网络性能质量可以是第一服务器根据所述网络性能数据得到后,再发送至服务器60。
当然,也可以是服务器60来执行上述操作,即服务器60获取所述终端所处区域内的CDN设备的网络性能数据,并根据所述网络性能数据获得每一个CDN设备的网络性能质量;然后,服务器60根据所述网络性能质量筛选出所述目标CDN设备。上述只是两种具体示例,并不限定于此。
本发明实施例中,可选地,所述筛选单元610B根据所述网络性能质量筛选出所述目标CDN设备时,具体为:
将对应的网络性能质量最高的CDN设备作为确定的目标CDN设备;或者
将按照对应的网络性能质量排序后的CDN设备作为确定的目标CDN设备。
例如,有5个CDN设备:CDN设备1、CDN设备2、CDN设备3、CDN设备4、CDN设备5,按照5个CDN设备的网络性能质量的降序的排序方式得到5个CDN设备的降序排序方式为:CDN设备2、CDN设备5、CDN设备1、CDN设备3、CDN设备4,那么目标设备可以为CDN设备2,此时,发送单元620可以直接将CDN设备2的CDN设备信息发送至终端,终端直接从CDN设备2中获取资源即可,或者,目标设备也可以是CDN设备2、CDN设备5、CDN设备1、CDN设备3、CDN设备4的降序排序后的5个CDN设备,终端在接收到按照降序排序后的5个CDN设备的CDN设备信息后,从5个CDN设备中选择出目标CDN设备,即将CDN设备2作为目标CDN设备,然后从CDN设备2中获取资源。
当然也可以按照升序的方式排列,在此不再具体详述。
本发明实施例中,可选地,所述获取单元610A获取所述终端所处区域内的CDN设备的网络性能数据,具体为:
接收所述终端所处区域内的终端发送的监测到的所述网络性能数据。
例如,终端所处的区域中有50万个终端,50万个终端监测网络性能数据,并将监测到的网络性能数据发送至服务器60。
上述描述的是,终端直接将监测到的网络性能数据发送至服务器60,当然,终端也可以将监测到的网络性能数据发送至第一服务器,第一服务器根据网络性能数据得到网络性能质量后,再将网络性能质量发送至服务器60。
本发明实施例中,可选地,所述网络性能数据包括网络响应时间和/或错误率。
参阅图7所示,本发明实施例中还提出一种获取资源的终端70,包括:
发送单元700,用于响应于针对应用程序的第一资源打开指令,向服务器发送内容分发网络CDN设备信息获取请求;
接收单元710,用于接收所述服务器发送的CDN设备信息;
所述发送单元700还用于,向与所述CDN设备信息相关联的目标CDN设备发送资源获取请求;
所述接收单元710还用于,接收所述目标CDN设备发送的资源。
例如,如图3所示,用户点击终端A的网易云音乐中的歌曲1,终端A接收到点击指令后,发送单元700向服务器发送CDN设备信息获取请求,服务器从CDN设备1、CDN设备2和CDN设备3中筛选出目标CDN设备(CDN设备2),并将CDN设备2的CDN设备信息发送至终端A,终端A的发送单元700向CDN设备2发送资源获取请求,然后CDN设备2向终端A发送资源。
本发明实施例中,进一步的,还包括监测单元720,用于监测从其他CDN设备和/或所述目标CDN设备获取资源时的网络性能数据;
所述发送单元700还用于,将监测到的网络性能数据发送至所述服务器。
需要说明的是,终端70是站在一个设备的角度来写的,而服务器不仅可以接收到终端70这个执行主体发送的监测到的网络性能数据,还能接收到其他设备发送的监测到的网络性能数据,这样,服务器综合多个终端发送的网络性能数据,可以从中筛选出服务器质量较佳的CDN设备。
本发明实施例中,可选地,所述发送单元700向所述服务器发送CDN设备信息获取请求时,具体为:
通过所述应用程序中的httpdns软件工具开发包SDK向所述服务器发送CDN设备信息获取请求。其中,httpdns SDK可以集成在应用程序中。
本发明实施例中,可选地,所述发送单元700将监测到的网络性能数据发送至所述服务器时,具体为:
通过所述应用程序中的APM SDK将监测到的网络性能数据发送至所述服务器。其中,APM SDK可以集成在应用程序中。
本发明实施例中,可选地,所述服务器包括第一服务器和第二服务器;
所述发送单元700向服务器发送内容分发网络CDN设备信息获取请求,具体为:
向所述第二服务器发送CDN设备信息获取请求;
所述发送单元700将监测到的网络性能数据发送至所述服务器,具体为:
将监测到的网络性能数据发送至所述第一服务器;
所述第二服务器为httpdns服务器,所述第一服务器为APM服务器。
需要说明的是,第一服务器接收到网络性能数据之后可以将网络性能数据综合处理得到网络性能质量,并将网络性能质量发送至第一服务器,由第一服务器根据网络性能质量确定目标CDN设备,并将确定出的目标CDN设备的相关信息发送至终端70。
如图4所示,终端A的应用程序中集成的APM SDK监测网络性能数据,并将监测到的网络性能数据发送至APM服务器,APM服务器根据网络性能数据得到网络性能质量,并将得到的网络性能质量发送至httpdns服务器,httpdns服务器根据网络性能质量确定出目标CDN设备,并在接收到终点A的应用程序中集成的httpdns SDK发送的CDN设备信息获取请求后,将目标CDN设备的CDN设备信息发送至终端A。
本发明实施例中,可选地,所述网络性能数据包括网络响应时间和/或错误率。
本发明实施例中,可选地,所述CDN设备信息为对应的网络性能质量最高的CDN设备的CDN设备信息。这样,终端70可以直接将接收到的CDN设备信息的CDN设备作为要获取资源的设备。
本发明实施例中,可选地,所述CDN设备信息为按照对应的网络性能质量排序后的CDN设备的CDN设备信息;
还包括筛选单元730,用于从按照网络性能质量排序后的CDN设备中选择出对应的网络性能质量最高的CDN设备作为所述目标CDN设备。
也就是说,如果终端70接收到的CDN设备信息是排序后的CDN设备列表的话,终端70要从中选择出CDN设备,然后再向选择出的CDN设备获取资源。
在实际应用中,多个CDN设备中网络性能质量最高的CDN设备不是固定不变的,可能发生变化,例如,在2017年12月1日9:00-10:00,CDN设备1、CDN设备2、CDN设备3、CDN设备4中CDN设备1的网络性能质量最高,而在2017年12月1日10:00-11:00中,可能是CDN设备2的网络性能质量最高,在2017年12月1日11:00-12:00中,可能是CDN设备4的网络性能质量最高,因此,本发明实施例中,进一步的,所述接收单元710还用于,接收针对所述应用程序的第二资源打开指令,所述第一资源打开指令所请求打开的资源和所述第二资源打开指令所请求打开的资源是相同的或者是不同的;
还包括判断单元740,用于判断接收所述第一资源打开指令的时间点和接收所述第二资源打开指令的时间点之间的时长是否达到阈值;
所述发送单元700还用于,若所述时长达到所述阈值,再次向所述服务器发送CDN设备信息获取请求,以重新获取CDN设备信息;否则,直接向所述目标CDN设备发送资源获取请求。
例如,用户在2017年12月04日的9:00第一次点击终端A的网易云音乐中的歌曲1后,最终从CDN设备1中获取歌曲1的资源,由于终端A自动关机歌曲1停止播放,用户重新启动终端A后,在2017年12月04日的9:02分第二次点击网易云音乐中的歌曲1时,由于第一次点击歌曲1和第二次点击歌曲1的时间点之间的时长还没有达到阈值,终端A直接向CDN设备1发送资源获取请求,从CDN设备1中获取歌曲1的资源。
上述示例中描述的是两次点击歌曲1的时间间隔未达到阈值,但是在实际应用中可能达到阈值,例如,用户在2017年12月04日的9:00第一次点击终端A的网易云音乐中的歌曲1后,最终从CDN设备1中获取歌曲1的资源,在2017年12月04日的14:02分第二次点击网易云音乐中的歌曲1时,由于第一次点击歌曲1和第二次点击歌曲1的时间点之间的时长达到阈值,服务器需要再重新确定CDN设备,如重新确定出的CDN设备为CDN设备4,此时,终端A从CDN设备4上获取歌曲1的资源。
在实际应用中,可能存在发送CDN设备信息获取请求之后并没有获取到CDN设备信息,即获取信息失败,此时,可以重新发送请求,以便重新获取CDN设备信息,因此,进一步的,所述发送单元700还用于,再次向所述服务器发送CDN设备信息获取请求,以重新获取CDN设备信息。
例如,终端A向服务器发送CDN设备信息获取请求后,在预设时长内并未接收到CDN设备信息,此时,终端A可以再次向服务器发送CDN设备信息获取请求,以重新获取CDN设备信息。
本发明实施例中,还提出一种获取资源的系统,包括如图6所示的服务器和如图7所示的终端。
本发明实施例中,还提出一种计算装置,包括:
一个或者多个处理器;
存储器;
存储在所述存储器中的程序,当被所述一个或者多个处理器执行时,所述程序使所述处理器执行如图3-5中任意一项所述的方法。
本发明实施例中,还提出一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被处理器执行时,使得所述处理器执行如图3-5中任意一项所述的方法。
示例性设备
在介绍了本发明示例性实施方式的方法和装置之后,接下来,介绍根据本发明的另一示例性实施方式的智能设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的智能设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的用于获取资源的方法中的步骤。例如,所述处理单元可以执行如图1中所示的步骤100:接收终端发送的CDN设备信息获取请求;步骤110:确定目标CDN设备,并将所述目标CDN设备的CDN设备信息发送至所述终端。。
又例如,所述处理单元可以执行如图2中所示的步骤200:响应于针对应用程序的第一资源打开指令,向服务器发送CDN设备信息获取请求;步骤210:接收所述服务器发送的CDN设备信息,并向与所述CDN设备信息相关联的目标CDN设备发送资源获取请求;步骤220:接收所述目标CDN设备发送的资源。
又例如,所述处理单元可以执行如图5中所示的步骤500:终端响应于针对应用程序的第一资源打开指令,向服务器发送内容分发网络CDN设备信息获取请求;步骤510:所述服务器根据所述CDN设备信息获取请求,向所述终端发送CDN设备信息;步骤520:所述终端向与所述CDN设备信息相关联的目标CDN设备发送资源获取请求;步骤530:所述终端接收所述目标CDN设备发送的资源。
下面参照图8来描述根据本发明的这种实施方式的服务器80。图8显示的服务器80仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,服务器80以通用计算设备的形式表现。服务器8的组件可以包括但不限于:上述至少一个处理单元16、上述至少一个存储单元28、连接不同系统组件(包括存储单元28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元28可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)31和/或高速缓存存储器32,还可以进一步只读存储器(ROM)34。
存储单元28还可以包括具有一组(至少一个)程序模块42的程序/实用工具41,这样的程序模块42包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
服务器80也可以与一个或多个外部设备14(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该服务器80交互的设备通信,和/或与使得该服务器80能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,服务器80还可以通过网络适配器21与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器21通过总线18与服务器80的其它模块通信。应当明白,尽管图中未示出,可以结合服务器80使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
示例性程序产品
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在设备上运行时,所述程序代码用于使所述设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的用于获取资源的方法中的步骤,例如,所述设备可以执行如图1中所示的步骤100:接收终端发送的CDN设备信息获取请求;步骤110:确定目标CDN设备,并将所述目标CDN设备的CDN设备信息发送至所述终端。
又例如,所述设备可以执行如图2中所示的步骤200:响应于针对应用程序的第一资源打开指令,向服务器发送CDN设备信息获取请求;步骤210:接收所述服务器发送的CDN设备信息,并向与所述CDN设备信息相关联的目标CDN设备发送资源获取请求;步骤220:接收所述目标CDN设备发送的资源。
又例如,所述设备可以执行如图5中所示的步骤500:终端响应于针对应用程序的第一资源打开指令,向服务器发送内容分发网络CDN设备信息获取请求;步骤510:所述服务器根据所述CDN设备信息获取请求,向所述终端发送CDN设备信息;步骤520:所述终端向与所述CDN设备信息相关联的目标CDN设备发送资源获取请求;步骤530:所述终端接收所述目标CDN设备发送的资源。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图9所示,描述了根据本发明的实施方式的用于获取资源的程序产品90,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了智能设备的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (26)
1.一种获取资源的方法,包括:
接收终端发送的内容分发网络CDN设备信息获取请求,包括:能够接收针对所述终端的应用程序的第一资源打开指令而发送的CDN设备信息获取请求和能够接收针对所述应用程序的第二资源打开指令而发送的CDN设备信息获取请求;
确定目标CDN设备,并将所述目标CDN设备的CDN设备信息发送至所述终端,以便于所述终端向与所述CDN设备信息相关联的目标CDN设备发送资源获取请求;
其中,确定目标CDN设备,包括:获取所述终端所处区域内的CDN设备的网络性能数据,并根据所述网络性能数据获得每一个CDN设备的网络性能质量;根据所述网络性能质量筛选出所述目标CDN设备;
其中,获取所述终端所处区域内的CDN设备的网络性能数据,包括:接收所述终端所处区域内的终端发送的监测到的所述网络性能数据;
其中,所述第一资源打开指令所请求打开的资源和所述第二资源打开指令所请求打开的资源是相同的或者是不同的;判断接收所述第一资源打开指令的时间点和接收所述第二资源打开指令的时间点之间的时长是否达到阈值;若所述时长达到所述阈值,再次接收所述终端发送的CDN设备信息获取请求,使得所述终端重新获取CDN设备信息;否则,能够使得所述终端直接向所述目标CDN设备发送资源获取请求。
2.如权利要求1所述的方法,每一个CDN设备的网络性能质量是第一服务器根据所述网络性能数据得到的,所述第一服务器为应用性能管理APM服务器。
3.如权利要求1所述的方法,根据所述网络性能质量筛选出所述目标CDN设备,包括:
将对应的网络性能质量最高的CDN设备作为确定的目标CDN设备;或者
将按照对应的网络性能质量排序后的CDN设备作为确定的目标CDN设备。
4.如权利要求1-3任一项所述的方法,所述网络性能数据包括网络响应时间和/或错误率。
5.一种获取资源的方法,包括:
响应于针对应用程序的第一资源打开指令,向服务器发送内容分发网络CDN设备信息获取请求;
接收所述服务器发送的CDN设备信息,并向与所述CDN设备信息相关联的目标CDN设备发送资源获取请求;
接收所述目标CDN设备发送的资源;
其中,向与所述CDN设备信息相关联的目标CDN设备发送资源获取请求之前,还包括:监测从其他CDN设备和/或所述目标CDN设备获取资源时的网络性能数据,并将监测到的网络性能数据发送至所述服务器;
其中,将监测到的网络性能数据发送至所述服务器,包括:通过所述应用程序中的应用性能管理APM SDK将监测到的网络性能数据发送至所述服务器;
接收针对所述应用程序的第二资源打开指令,所述第一资源打开指令所请求打开的资源和所述第二资源打开指令所请求打开的资源是相同的或者是不同的;
判断接收所述第一资源打开指令的时间点和接收所述第二资源打开指令的时间点之间的时长是否达到阈值;
若所述时长达到所述阈值,再次向所述服务器发送CDN设备信息获取请求,以重新获取CDN设备信息;否则,直接向所述目标CDN设备发送资源获取请求。
6.如权利要求5所述的方法,向所述服务器发送CDN设备信息获取请求,包括:
通过所述应用程序中的httpdns软件工具开发包SDK向所述服务器发送CDN设备信息获取请求。
7.如权利要求5或6所述的方法,所述服务器包括第一服务器和第二服务器;
向服务器发送内容分发网络CDN设备信息获取请求,包括:
向所述第二服务器发送CDN设备信息获取请求;
将监测到的网络性能数据发送至所述服务器,包括:
将监测到的网络性能数据发送至所述第一服务器;
所述第二服务器为httpdns服务器,所述第一服务器为APM服务器。
8.如权利要求5所述的方法,所述网络性能数据包括网络响应时间和/或错误率。
9.如权利要求5所述的方法,所述CDN设备信息为对应的网络性能质量最高的CDN设备的CDN设备信息。
10.如权利要求5所述的方法,所述CDN设备信息为按照对应的网络性能质量排序后的CDN设备的CDN设备信息;
所述方法还包括:
从按照网络性能质量排序后的CDN设备中选择出对应的网络性能质量最高的CDN设备作为所述目标CDN设备。
11.如权利要求5所述的方法,在向所述目标CDN设备发送资源获取请求之后,若未接收到所述目标CDN设备发送的资源,所述方法还包括:
再次向所述服务器发送CDN设备信息获取请求,以重新获取CDN设备信息。
12.一种获取资源的服务器,包括:
接收单元,用于接收终端发送的内容分发网络CDN设备信息获取请求,包括:能够接收响应于针对所述终端的应用程序的第一资源打开指令而发送的CDN设备信息获取请求和能够接收响应于针对所述应用程序的第二资源打开指令而发送的CDN设备信息获取请求;
确定单元,用于确定目标CDN设备;
发送单元,用于将所述目标CDN设备的CDN设备信息发送至所述终端,以便于所述终端向与所述CDN设备信息相关联的目标CDN设备发送资源获取请求;
所述确定单元包括获取单元和筛选单元,其中:所述获取单元,用于获取所述终端所处区域内的CDN设备的网络性能数据,并根据所述网络性能数据获得每一个CDN设备的网络性能质量;所述筛选单元,用于根据所述网络性能质量筛选出所述目标CDN设备;
其中,所述获取单元获取所述终端所处区域内的CDN设备的网络性能数据,具体为:接收所述终端所处区域内的终端发送的监测到的所述网络性能数据;
其中,所述第一资源打开指令所请求打开的资源和所述第二资源打开指令所请求打开的资源是相同的或者是不同的;判断接收所述第一资源打开指令的时间点和接收所述第二资源打开指令的时间点之间的时长是否达到阈值;若所述时长达到所述阈值,再次接收所述终端发送的CDN设备信息获取请求,使得所述终端重新获取CDN设备信息;否则,能够使得所述终端直接向所述目标CDN设备发送资源获取请求。
13.如权利要求12所述的服务器,每一个CDN设备的网络性能质量是第一服务器根据所述网络性能数据得到的,所述第一服务器为应用性能管理APM服务器。
14.如权利要求12或13所述的服务器,所述筛选单元根据所述网络性能质量筛选出所述目标CDN设备时,具体为:
将对应的网络性能质量最高的CDN设备作为确定的目标CDN设备;或者
将按照对应的网络性能质量排序后的CDN设备作为确定的目标CDN设备。
15.如权利要求12-14任一项所述的服务器,所述网络性能数据包括网络响应时间和/或错误率。
16.一种获取资源的终端,包括:
发送单元,用于响应于针对应用程序的第一资源打开指令,向服务器发送内容分发网络CDN设备信息获取请求;
接收单元,用于接收所述服务器发送的CDN设备信息;
所述发送单元还用于,向与所述CDN设备信息相关联的目标CDN设备发送资源获取请求;
所述接收单元还用于,接收所述目标CDN设备发送的资源;
其中,所述终端还包括监测单元,用于监测从其他CDN设备和/或所述目标CDN设备获取资源时的网络性能数据;
所述发送单元还用于,将监测到的网络性能数据发送至所述服务器;
其中,所述发送单元将监测到的网络性能数据发送至所述服务器时,具体为:通过所述应用程序中的应用性能管理APM SDK将监测到的网络性能数据发送至所述服务器;
所述接收单元还用于,接收针对所述应用程序的第二资源打开指令,所述第一资源打开指令所请求打开的资源和所述第二资源打开指令所请求打开的资源是相同的或者是不同的;
还包括判断单元,用于判断接收所述第一资源打开指令的时间点和接收所述第二资源打开指令的时间点之间的时长是否达到阈值;
所述发送单元还用于,若所述时长达到所述阈值,再次向所述服务器发送CDN设备信息获取请求,以重新获取CDN设备信息;否则,直接向所述目标CDN设备发送资源获取请求。
17.如权利要求16所述的终端,所述发送单元向所述服务器发送CDN设备信息获取请求时,具体为:
通过所述应用程序中的httpdns软件工具开发包SDK向所述服务器发送CDN设备信息获取请求。
18.如权利要求16或17所述的终端,所述服务器包括第一服务器和第二服务器;
所述发送单元向服务器发送内容分发网络CDN设备信息获取请求,具体为:
向所述第二服务器发送CDN设备信息获取请求;
所述发送单元将监测到的网络性能数据发送至所述服务器,具体为:
将监测到的网络性能数据发送至所述第一服务器;
所述第二服务器为httpdns服务器,所述第一服务器为APM服务器。
19.如权利要求16所述的终端,所述网络性能数据包括网络响应时间和/或错误率。
20.如权利要求16所述的终端,所述CDN设备信息为对应的网络性能质量最高的CDN设备的CDN设备信息。
21.如权利要求16所述的终端,所述CDN设备信息为按照对应的网络性能质量排序后的CDN设备的CDN设备信息;
还包括筛选单元,用于从按照网络性能质量排序后的CDN设备中选择出对应的网络性能质量最高的CDN设备作为所述目标CDN设备。
22.如权利要求16所述的终端,所述发送单元还用于,再次向所述服务器发送CDN设备信息获取请求,以重新获取CDN设备信息。
23.一种获取资源的方法,包括:
终端响应于针对应用程序的第一资源打开指令,向服务器发送内容分发网络CDN设备信息获取请求;
所述服务器根据所述CDN设备信息获取请求,向所述终端发送CDN设备信息;
所述终端向与所述CDN设备信息相关联的目标CDN设备发送资源获取请求;
所述终端接收所述目标CDN设备发送的资源;
其中,向与所述CDN设备信息相关联的目标CDN设备发送资源获取请求之前,还包括:监测从其他CDN设备和/或所述目标CDN设备获取资源时的网络性能数据,并将监测到的网络性能数据发送至所述服务器;
其中,将监测到的网络性能数据发送至所述服务器,包括:通过所述应用程序中的应用性能管理APM SDK将监测到的网络性能数据发送至所述服务器;
所述终端接收针对所述应用程序的第二资源打开指令,所述第一资源打开指令所请求打开的资源和所述第二资源打开指令所请求打开的资源是相同的或者是不同的;判断接收所述第一资源打开指令的时间点和接收所述第二资源打开指令的时间点之间的时长是否达到阈值;若所述时长达到所述阈值,再次向所述服务器发送CDN设备信息获取请求,以重新获取CDN设备信息;否则,直接向所述目标CDN设备发送资源获取请求。
24.一种获取资源的系统,包括如权利要求12-15任一项所述的服务器和如权利要求16-22任一项所述的终端。
25.一种计算装置,包括:
一个或者多个处理器;
存储器;
存储在所述存储器中的程序,当被所述一个或者多个处理器执行时,所述程序使所述处理器执行如权利要求1-11、23中任意一项所述的方法。
26.一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被处理器执行时,使得所述处理器执行如权利要求1-11、23中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711298717.9A CN108093036B (zh) | 2017-12-08 | 2017-12-08 | 一种获取资源的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711298717.9A CN108093036B (zh) | 2017-12-08 | 2017-12-08 | 一种获取资源的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108093036A CN108093036A (zh) | 2018-05-29 |
CN108093036B true CN108093036B (zh) | 2021-11-05 |
Family
ID=62174963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711298717.9A Active CN108093036B (zh) | 2017-12-08 | 2017-12-08 | 一种获取资源的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108093036B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109600415B (zh) * | 2018-10-23 | 2022-04-15 | 平安科技(深圳)有限公司 | 从多个源服务器获取目标数据的方法、装置和计算机设备 |
CN109951341B (zh) * | 2019-04-01 | 2022-03-25 | 北京达佳互联信息技术有限公司 | 内容获取方法、装置、终端及存储介质 |
CN110489215A (zh) | 2019-06-29 | 2019-11-22 | 华为技术有限公司 | 一种应用程序中等待场景的处理方法和装置 |
CN111314414B (zh) * | 2019-12-17 | 2021-09-28 | 聚好看科技股份有限公司 | 数据传输方法、装置及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103763209A (zh) * | 2014-01-03 | 2014-04-30 | 上海聚力传媒技术有限公司 | 一种cdn服务器的调度方法与装置 |
CN104168341A (zh) * | 2014-08-15 | 2014-11-26 | 北京百度网讯科技有限公司 | Ip地址的定位方法和cdn调度方法以及装置 |
CN105847381A (zh) * | 2016-04-18 | 2016-08-10 | 乐视控股(北京)有限公司 | 内容服务器的调度方法及装置 |
CN106331216A (zh) * | 2016-09-13 | 2017-01-11 | 腾讯科技(深圳)有限公司 | 域名的解析方法和装置 |
-
2017
- 2017-12-08 CN CN201711298717.9A patent/CN108093036B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103763209A (zh) * | 2014-01-03 | 2014-04-30 | 上海聚力传媒技术有限公司 | 一种cdn服务器的调度方法与装置 |
CN104168341A (zh) * | 2014-08-15 | 2014-11-26 | 北京百度网讯科技有限公司 | Ip地址的定位方法和cdn调度方法以及装置 |
CN105847381A (zh) * | 2016-04-18 | 2016-08-10 | 乐视控股(北京)有限公司 | 内容服务器的调度方法及装置 |
CN106331216A (zh) * | 2016-09-13 | 2017-01-11 | 腾讯科技(深圳)有限公司 | 域名的解析方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108093036A (zh) | 2018-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8972519B2 (en) | Optimization of multimedia service over an IMS network | |
US9244817B2 (en) | Remote debugging in a cloud computing environment | |
CN108093036B (zh) | 一种获取资源的方法及装置 | |
US10771533B2 (en) | Adaptive communication control device | |
CN111459750A (zh) | 基于非扁平网络的私有云监控方法、装置、计算机设备及存储介质 | |
CN107635010B (zh) | 流量调度方法、装置、计算机可读存储介质及电子设备 | |
US20150195138A1 (en) | Cloud-Based Service Resource Provisioning Based on Network Characteristics | |
US9094872B2 (en) | Enhanced resource management for a network system | |
CN108427619B (zh) | 日志管理方法、装置、计算设备及存储介质 | |
US11627169B2 (en) | Network-based Media Processing (NBMP) workflow management through 5G Framework for Live Uplink Streaming (FLUS) control | |
CN110677475A (zh) | 一种微服务处理方法、装置、设备及存储介质 | |
US20120005051A1 (en) | Semi-Automated Customer Model-Based Service Deployment Into Data Centers | |
CN116627333A (zh) | 日志缓存方法、装置、电子设备及计算机可读存储介质 | |
CN110247847B (zh) | 节点之间回源选路的方法和装置 | |
CN114070889B (zh) | 配置方法、流量转发方法、设备、存储介质及程序产品 | |
US11316765B2 (en) | Load balancing across bandwidth carrying circuits | |
CN113761433A (zh) | 业务处理方法和装置 | |
US10652308B2 (en) | Cognitive storage management for a mobile computing device | |
CN114785851B (zh) | 资源调用处理方法、装置、存储介质及电子设备 | |
CN114296953B (zh) | 一种多云异构系统及任务处理方法 | |
CN115277506B (zh) | 负载均衡设备测试方法及系统 | |
WO2024066503A1 (zh) | 服务调用方法及装置 | |
WO2024129061A1 (en) | Seamless nfs server pod addition | |
CN114584547A (zh) | 一种api接口调用方法和装置 | |
CN113722313A (zh) | 数据写入请求处理方法、装置、设备和计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |